JavaScript Date对象常见用法详解

作者:异步漫步

时间:2026-10-22

浏览:442

本文详细介绍JavaScript中Date引用类型的常见用法,包括基于UTC毫秒数保存日期的原理,以及通过构造函数、Date.parse()和Date.UTC()创建日期对象的方法。同时涵盖Date.now()获取当前时间毫秒数及跨浏览器兼容方案,帮助开发者掌握日期处理核心技巧。

文章目录

Date对象概述与创建方法

本文通过实例解析JavaScript中Date引用类型的常用操作方法,旨在为读者提供实用的参考指南。

Date类型内部使用自协调世界时(UTC)1970年1月1日00:00:00起经过的毫秒数来存储日期数据。

以下是创建日期对象的具体方法说明。

(1)获取当前系统日期和时间。


var date = new Date();

(2)根据指定的日期和时间创建新的日期对象。

日期解析与时间戳转换

传入的参数为从UTC 1970年1月1日午夜开始至目标日期所经过的毫秒数。为此,JavaScript提供了Date.parse()和Date.UTC()两个相关方法。

1)Date.parse()方法:接收一个表示日期的字符串,解析该字符串并返回对应的毫秒数。如果传入的字符串无法被解析为有效日期,则返回NaN。实际上,当直接将日期字符串传递给Date构造函数时,内部也会自动调用Date.parse()。

日期字符串的格式因地区设置而异,将浏览器地区设置为美国时,支持以下格式:

  • ---"月/日/年"
  • ---"英文名月/日/,年"
  • ---"英文名星期几缩写 英文名月 日 年 时:分:秒 时区"
  • ---"YYYY-MM-DDTHH:mm:ss:sssZ"

var date1 = new Date(Date.parse("December 13,2016"));
var date2 = new Date(Date.parse("12/13/2016"));
var date3 = new Date(Date.parse("Tue December 13 2016 21:33:33 GMT-0700"));
var date4 = new Date(Date.parse("2016-12-13T21:33:33Z"));

上述格式等价于直接传递字符串给构造函数。


var date1 = new Date("December 13,2016");
var date2 = new Date("12/13/2016");
var date3 = new Date("Tue December 13 2016 21:33:33 GMT-0700");
var date4 = new Date("2016-12-13T21:33:33Z");

UTC时间处理与当前时间获取

2)Date.UTC()方法:参数依次为年份、基于0的月份、基于1的天数、基于0的小时数、基于0的分钟数、基于0的秒数、基于0的毫秒数,其中前两个参数(年和月)是必需的。若未提供天数,默认假设为1;若未提供其他参数,则默认假设为0。当直接将日期参数传递给Date构造函数时,内部会调用Date.UTC(),但此时日期和时间是基于本地时间而非UTC时间创建的。


var date1 = new Date(Date.UTC(2016, 11));//GMT时间2016年1月1日午夜零时
var date2 = new Date(Date.UTC(2016, 11, 13, 21, 33, 33));//GMT时间2016年12月13日下午9:33:33
var date3 = new Date(2016, 11);//本地时间2016年1月1日午夜零时
var date4 = new Date(2016, 11, 13, 21, 33, 33);//本地时间2016年12月13日下午9:33:33

Date.now()方法:返回调用该方法时的日期和时间对应的毫秒数。


var startTime = Date.now();
......//执行若干操作
var endTime = Date.now();
alert(endTime - startTime);

该行为等价于在不支持Date.now()方法的浏览器中使用+操作符。


var startTime = + new Date();
......//执行若干操作
var endTime = + new Date();
alert(endTime - startTime);

PS:这里再为大家推荐几款时间及日期相关工具供大家参考使用:

在线日期/天数计算器: http://tools.jb51.net/jisuanqi/date_jisuanqi

在线日期计算器/相差天数计算器: http://tools.jb51.net/jisuanqi/datecalc

在线日期天数差计算器: http://tools.jb51.net/jisuanqi/onlinedatejsq

Unix时间戳(timestamp)转换工具: http://tools.jb51.net/code/unixtime

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript时间与日期操作技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript页面元素操作技巧总结》及《JavaScript操作DOM技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章