几种日期格式

标准日期:2017-09-19 或 2017-09-19 20:00:00
中国标准时间:Mon Oct 23 2017 17:20:13 GMT+0800 (中国标准时间)
时间戳:1508750413
毫秒数:1508750413000

日期或中国标准时间转毫秒数:

  1. //变量
  2. let myDate2 = 'Mon Oct 23 2017 17:20:13 GMT+0800 (中国标准时间)';
  3. let myDate3 = '2017-09-19';
  4. let myDate4 = '2017-09-19 20:00:00';
  5. //实现方法
  6. function dateToMs (date) {
  7. let result = new Date(date).getTime();
  8. return result;
  9. }
  10. //例子
  11. console.log(dateToMs(myDate2));//--->1508750413000
  12. console.log(dateToMs(myDate3));//--->1505779200000
  13. console.log(dateToMs(myDate4));//--->1505779400000

毫秒数或中国标准时间转日期:

  1. //变量
  2. let myTime1 = dateToLongMs(myDate2);
  3. let myTime2 = dateToLongMs(myDate3);
  4. let myTime3 = dateToLongMs(myDate4);
  5. //实现方法 @return 返回2个值,一个是带时分秒,另一个不带。
  6. function msToDate (msec) {
  7. let datetime = new Date(msec);
  8. let year = datetime.getFullYear();
  9. let month = datetime.getMonth();
  10. let date = datetime.getDate();
  11. let hour = datetime.getHours();
  12. let minute = datetime.getMinutes();
  13. let second = datetime.getSeconds();
  14. let result1 = year +
  15. '-' +
  16. ((month + 1) >= 10 ? (month + 1) : '0' + (month + 1)) +
  17. '-' +
  18. ((date + 1) < 10 ? '0' + date : date) +
  19. ' ' +
  20. ((hour + 1) < 10 ? '0' + hour : hour) +
  21. ':' +
  22. ((minute + 1) < 10 ? '0' + minute : minute) +
  23. ':' +
  24. ((second + 1) < 10 ? '0' + second : second);
  25. let result2 = year +
  26. '-' +
  27. ((month + 1) >= 10 ? (month + 1) : '0' + (month + 1)) +
  28. '-' +
  29. ((date + 1) < 10 ? '0' + date : date);
  30. let result = {
  31. hasTime: result1,
  32. withoutTime: result2
  33. };
  34. return result;
  35. }
  36. //例子
  37. console.log(msToDate(myTime1).hasTime);//--->2017-10-23 17:20:13
  38. console.log(msToDate(myTime1).withoutTime);//--->2017-10-23
  39. console.log(msToDate(myTime2).hasTime);//--->2017-09-19 08:00:00
  40. console.log(msToDate(myTime2).withoutTime);//--->2017-09-19

标准日期转中国标准时间

  1. //变量
  2. let myDate4 = '2017-09-19';
  3. let myDate5 = '2017-09-19 20:00:00';
  4. //实现方法
  5. function formatterDate (date) {
  6. let result = new Date(date);
  7. return result;
  8. }
  9. //例子
  10. console.log(formatterDate(myDate4));//--->Tue Sep 19 2017 08:00:00 GMT+0800 (中国标准时间)
  11. console.log(formatterDate(myDate5));//--->Tue Sep 19 2017 20:00:00 GMT+0800 (中国标准时间)

格林尼治时间 转 北京时间

  1. function myTimeToLocal(inputTime){
  2. if(!inputTime && typeof inputTime !== 'number'){
  3. return '';
  4. }
  5. let localTime = '';
  6. inputTime = new Date(inputTime).getTime();
  7. const offset = (new Date()).getTimezoneOffset();
  8. localTime = (new Date(inputTime - offset * 60000)).toISOString();
  9. localTime = localTime.substr(0, localTime.lastIndexOf('.'));
  10. localTime = localTime.replace('T', ' ');
  11. return localTime;
  12. }
  13. console.log(myTimeToLocal(1530540726443)); // 2018-07-02 22:12:06
  14. console.log(myTimeToLocal('2017-11-16T05:23:20.000Z')); // 2017-11-16 13:23:20

补充示例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Date对象</title>
  6. <style>
  7. body {background-color: #333; color: white;}
  8. </style>
  9. </head>
  10. <body>
  11. <script type="text/javascript">
  12. /**** 3. 时间转换 */
  13. var testDate = new Date();
  14. var dateobj_toString = testDate.toString(); // toString() 把 Date 对象转换为字符串。
  15. var dataobj_toTimeString = testDate.toTimeString(); // toTimeString() 把 Date 对象的时间部分转换为字符串。
  16. var dateobj_toDateString = testDate.toDateString(); // toDateString() 把 Date 对象的日期部分转换为字符串。
  17. var dateobj_toUTCString = testDate.toUTCString(); // toUTCString() 根据世界时,把 Date 对象转换为字符串。
  18. var dateobj_toLocalString = testDate.toLocaleString(); // toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
  19. var dateobj_toLocalTimeString = testDate.toLocaleTimeString(); // toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
  20. var dateobj_toLocaleDateString = testDate.toLocaleDateString(); // toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。
  21. document.write("dateobj_toString===="+dateobj_toString+ '<br><br>');
  22. document.write("dataobj_toTimeString===="+dataobj_toTimeString+ '<br><br>');
  23. document.write("dateobj_toDateString===="+dateobj_toDateString+ '<br><br>');
  24. document.write("dateobj_toUTCString===="+dateobj_toUTCString+ '<br><br>');
  25. document.write("dateobj_toLocalString===="+dateobj_toLocalString+ '<br><br>');
  26. document.write("dateobj_toLocalTimeString===="+dateobj_toLocalTimeString+ '<br><br>');
  27. document.write("dateobj_toLocaleDateString===="+dateobj_toLocaleDateString+ '<br><br>');
  28. </script>
  29. </body>
  30. </html>

输出结果:

JS日期转换操作 - 图1

Date常用Api

  1. new Date() // 创建一个时间对象 Fri Jul 12 2019 19:59:59 GMT+0800 (中国标准时间)
  2. // 返回自1970年1月1日 00:00:00 UTC到当前时间的毫秒数。
  3. Date.now(); // 1562932828164
  4. // 解析一个表示某个日期的字符串,并返回从1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的UTC时间)的毫秒数
  5. Date.parse('2019.7.12') // 1562860800000
  6. // 年月日时分秒 获取
  7. let dateMe = new Date()
  8. dateMe.getFullYear() // 2019 | 根据本地时间返回指定日期的年份
  9. dateMe.getMonth() // 6 | 根据本地时间,返回一个指定的日期对象的月份,为基于0的值(0表示一年中的第一月)。
  10. dateMe.getDate() // 12 | 根据本地时间,返回一个指定的日期对象为一个月中的哪一日(从1--31)
  11. dateMe.getHours() // 20 |根据本地时间,返回一个指定的日期对象的小时。
  12. dateMe.getMinutes() // 11 | 根据本地时间,返回一个指定的日期对象的分钟数。
  13. dateMe.getSeconds() // 29 | 方法根据本地时间,返回一个指定的日期对象的秒数
  14. dateMe.getMilliseconds() // 363 | 根据本地时间,返回一个指定的日期对象的毫秒数。
  15. dateMe.toJSON() // 🔥 "2019-07-12T12:05:15.363Z" | 返回 Date 对象的字符串形式
  16. dateMe.getDay() // 5 | 根据本地时间,返回一个具体日期中一周的第几天,0 表示星期天(0 - 6)
  17. dateMe.getTime() // 1562933115363 | 方法返回一个时间的格林威治时间数值。
  18. dateMe.toString() // "Fri Jul 12 2019 20:05:15 GMT+0800 (中国标准时间)" | 返回一个字符串,表示该Date对象
  19. dateMe.getTimezoneOffset() // -480(说明比正常时区慢480分钟,所以要加480分钟才对) | 返回协调世界时(UTC)相对于当前时区的时间差值,单位为分钟。
  20. dateMe.toDateString() // "Fri Jul 12 2019" | 以美式英语和人类易读的形式返回一个日期对象日期部分的字符串。

Date常用to…方法

  1. var timestamp = new Date()
  2. timestamp.toISOString() // "2019-10-17T02:22:44.009Z"
  3. timestamp.toISOString().split("T") // ["2019-10-17", "02:24:04.562Z"]
  4. timestamp.toLocaleDateString() // "2019/10/17"
  5. timestamp.toLocaleDateString().replace(/\//g,'-') // 2019-10-17
  6. timestamp.toTimeString() //"10:29:28 GMT+0800 (中国标准时间)"
  7. timestamp.toTimeString().substr(0,8).replace(/:/g,'-') // "10-29-28"
  8. timestamp.toLocaleTimeString() // "上午10:33:02"
  9. timestamp.toLocaleTimeString().substr(2).replace(/:/g,'-') // "10-22-02"
  10. timestamp.toJSON().replace("T",' ').substring(0,19) //"2019-10-29 07:47:24"