JavaScript 日期时间


JavaScript语言中有3种时间表示方式:

  • 时间戮(timestamp,数字),即UTC时间(全球标准时间)和1970年1月1日0时0分0秒之间相差的毫秒数表示的时间。
  • 日历时间(Date对象),即以年、月、日、时、分、秒、毫秒、时区表示的时间。
  • 以字符串表示的日历时间。不使用new关键字调用Date函数返回值为日期和时间的字符串表示。

日历时间又可以分为UTC日历时间和本地日历时间。UTC日历时间 + 时区差 = 本地日历时间。北京时间和UTC时间的时区差是8小时。

创建Date对象

使用Date构造函数创建对象分为下面4种情况:

  • 无参数,创建表示当前日期和时间的Date对象。例如var now = new Date()
  • 只有一个number类型的时间戮参数,创建时间戮对应的Date对象。例如var d = new Date(1)
  • 只有一个字符串表示的日历时间参数,创建对应的Date对象。例如var d = new Date("2018-02-12")
  • 2-7个参数用来表示年、月、日、时、分、秒、毫秒,创建对应的Date对象。例如var d = new Date(2018, 2, 10)

上面的方式创建的是本地时间。

下面是创建Date对象的例子:

<!DOCTYPE html><html><body><pre>
<script type="text/javascript">
  var d = new Date();
  var d2 = new Date(1);
  var d3 = new Date('2018-08-03T05:20:10Z');
  var d4 = new Date(2018, 2, 5);
  var d5 = new Date(2018, 2, 5, 6, 10, 5);
  var d6 = Date.now();

  document.writeln("d: " + d);    // Sat Apr 28 2018 21:55:55 GMT+0800 (CST)
  document.writeln("d2: " + d2);
  document.writeln("d3: " + d3);
  document.writeln("d4: " + d4);
  document.writeln("d5: " + d5);
  document.writeln("d6: " + d6);  // 1524923724143
</script>
</pre></body></html>