JavaScript Date对象常见用法详解
本文详细介绍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程序设计有所帮助。
D3.js 比例尺与坐标轴的配置详解
2026-11-05 16:54:46
JavaScript怎么遍历对象的Symbol键和不可枚举属性
2026-11-05 13:13:39
封装一个健壮的JS字符串判空工具函数
2026-11-05 12:16:14
JavaScript合并数组的三种常用方法:concat、扩展运算符与push
2026-11-05 11:22:29
JavaScript立即执行函数(IIFE)是什么及基本语法
2026-11-05 10:51:19
