说说 JavaScript Date 类型

来源:互联网 发布:蔡康永的母亲 知乎 编辑:程序博客网 时间:2024/06/05 18:32
  • Date 类型使用 UTC(Coordinated Universal Time),即 1970 年 1 月 1 日 午夜零时经过的毫秒数来保存日期。在这种格式下,日期的精度能够达到 1970 年 1 月 1 日之前或之后的 285616 年。
  • 各种创建日期对象方法:
<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>各种创建日期对象方法</title></head><body><script type="text/javascript">    var now = new Date();    console.log(now);    var someDate=new Date(Date.parse("May 25,2016"));    console.log(someDate);    console.log(new Date("May 25,2016"));</script></body></html>
  • Date.parse() 方法接收一个表示日期的字符串参数,这个参数的格式因实现而异。如果这个参数不能表示为日期,会返回 NaN。
  • 如果直接将表示日期的字符串传递给 Date 构造函数,它也会在后台自动调用 Date.parse() 方法。

注意: 日期对象在不同浏览器中有不同的实现,有的还很奇怪,比如将超出范围的值替换为当前的值。


  • Date.UTC() 也会返回表示日期的毫秒数,它需要传入的参数是年份、月份(0-11)、天(1-31)、小时(0-23)、分钟、秒以及毫秒。这些参数中只有年和月是必须的,它们是基于 GMT 的:
<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>Date.UTC 函数(GMT 时间)</title></head><body><script type="text/javascript">    console.log(new Date(Date.UTC(2000,0)));//2000-1-1 午夜零时    console.log(new Date(Date.UTC(2017,1,16,14,46,46)));</script></body></html>
  • Date 构造函数也会模仿 Date.UTC(),但日期和时间都是基于本地时区的:
<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>基于本地时区创建时间</title></head><body><script type="text/javascript">    console.log(new Date(2000, 0));    console.log(new Date(2005, 4, 5, 17, 55, 55));</script></body></html>
  • ECMAScript 5 新增了 Date.now() 方法,返回的是毫秒数:
var start = Date.now();doSomething();var stop = Date.now(),    result = stop - start;
  • 在不支持 ECMAScript 5 的浏览器中,可以使用 + 操作符把 Date 对象转换为字符串:
var start = + new Date();doSomething();var stop = + new Date(),    result = stop - start;

1 继承的方法

  • Date 类型的 toLocaleString() 方法会按照浏览器设置的时区返回相应格式的日期和时间。
  • toString() 会返回带有时区信息的日期和时间。
  • 上面的这两个方法返回的具体格式因浏览器而异,所以一般仅在调试代码阶段有用,不能用来显示时间。
  • valueOf() 方法返回的是毫秒数,因此可以使用比较操作符来比较日期值,这一点非常棒:
<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>比较日期值</title></head><body><script type="text/javascript">    var date1 = new Date(2017, 0, 1);//2017-1-1    var date2 = new Date(2017, 1, 1);//2017-2-1    console.log(date1 < date2);//true    console.log(date1 > date2);//false</script></body></html>

2 日期格式化方法

方法名称 说明 toDateString() 特定于实现的格式显示星期几、月、日、年 toTimeString() 特定于实现的格式显示时、分、秒和时区 toLocaleDateString() 特定于时区的格式显示星期几、月、日、年 toLocaleTimeString() 特定于时区的格式显示时、分、秒 toUTCString() 特定于实现的格式显示完整的 UTC 日期

* 这些方法都是以浏览器而异的,所以对于显示日期信息没有什么用啦 O(∩_∩)O~


注意: 还有一个 toGMTString() 方法,这是与 toUTCString() 等价的方法,存在的目的是为了确保向后兼容,所以我们写代码时还是推荐使用 toUTCString() 啦 O(∩_∩)O~


3 日期/时间组件方法

方法名称 说明 getTime() 返回日期的毫秒数,与 valueOf() 的返回值相同 setTime(毫秒数) 以毫秒数设置日期 getFullYear() 取得 4 位数的年份 getUTCFullYear() 返回 UTC 日期的 4 位数的年份 setFullYear(年) 设置日期的年份(4 位数) setUTCFullYear(年) 设置 UTC 日期的年份(4 位数) getMonth() 返回日期中的月份(0 ~ 11) getUTCMonth() 返回 UTC 日期中的月份(0 ~ 11),如果超过会增加年份 setMonth(月) 设置日期的月份(0 ~ 11),如果超过会增加年份 setUTCMonth(月) 设置 UTC 日期的月份(0 ~ 11) getDate() 返回日期月份中的天数(1 ~ 31) getUTCDate() 返回 UTC 日期月份中的天数(1 ~ 31) setDate(日) 设置日期月份中的天数(1 ~ 31),如果超过会增加月份 setUTCDate(日) 设置 UTC 日期月份中的天数(1 ~ 31),如果超过会增加月份 getDay() 返回日期中的星期几(0:星期日;6:星期六;其他类推) getUTCDay() 返回 UTC 日期中的星期几(0:星期日;6:星期六;其他类推) getHours() 返回日期中的小时数(0 ~ 23) getUTCHours() 返回 UTC 日期中的小时数(0 ~ 23) setHours(小时) 设置日期中的小时数(0 ~ 23),如果超过会增加天数 setUTCHours(小时) 设置 UTC 日期中的小时数(0 ~ 23),如果超过会增加天数 getMinutes() 返回日期中的分钟数(0 ~ 59) getUTCMinutes() 返回 UTC 日期中的分钟数(0 ~ 59) setMinutes(分钟) 设置日期中的分钟数(0 ~ 59),如果超过会增加小时数 setUTCMinutes(分钟) 设置 UTC 日期中的分钟数(0 ~ 59),如果超过会增加小时数 getSeconds() 返回日期中的秒数(0 ~ 59) getUTCSeconds() 返回 UTC 日期中的秒数(0 ~ 59) setSeconds(秒) 设置日期中的秒数(0 ~ 59),超过会增加分钟数 setUTCSeconds(秒) 设置 UTC 日期中的秒数(0 ~ 59),超过会增加分钟数 getMilliseconds() 返回日期中的毫秒数 getUTCMilliseconds() 返回 UTC 日期中的毫秒数 setMilliseconds(毫秒) 设置日期中的毫秒数 setUTCMilliseconds(毫秒) 设置 UTC 日期中的毫秒数 getTimezoneOffset() 返回本地时间与 UTC 时间相差的分钟数
0 0
原创粉丝点击