JS中的日期&时间

日期

let now = new Date(); // 显示当前的日期/时间
let Jan01_1970 = new Date(0);
let Jan02_1970 = new Date(24 * 3600 * 1000);
let Dec31_1969 = new Date(-24 * 3600 * 1000);
let date = new Date(“2017-01-26”);
let date =new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00
let date = new Date(2011, 0, 1, 2, 3, 4, 567); // 1.01.2011, 02:03:04.567

访问 Date 对象中的日期组件

alert( date.getXxx() );
getFullYear() //获取年份(4 位数)
getMonth() //获取月份,从 0 到 11。
getDate() //获取当月的具体日期,从 1 到 31,这个方法名称可能看起来有些令人疑惑。
getHours(),getMinutes(),getSeconds(),getMilliseconds() //获取相应的时间组件。
getDay() //获取一周中的第几天,从 0(星期日)到 6(星期六)。

两个没有 UTC 变体的特殊方法:

getTime()
//返回日期的时间戳 —— 从 1970-1-1 00:00:00 UTC+0 开始到现在所经过的毫秒数。
注意:alert(+date) = alert(getTime())
测量时间间隔
1.new Date()可以相减,相减的结果是以毫秒为单位时间差,用于时间测量功能。
let start = new Date(); // 开始测量时间
// do the job
let end = new Date(); // 结束测量时间
alert( The loop took ${end - start} ms );// 相减的结果是以毫秒为单位时间差,而不是日期
2.Date.now()会返回当前的时间戳,相当于 new Date().getTime()
let start = Date.now(); // 从 1 Jan 1970 至今的时间戳
// do the job
let end = Date.now(); // 完成
alert( The loop took ${end - start} ms ); // 相减的是时间戳,而不是日期

getTimezoneOffset()
//返回 UTC 与本地时区之间的时差,以分钟为单位
alert( new Date().getTimezoneOffset() );
如果你在时区 UTC-1,输出 60
如果你在时区 UTC+3,输出 -180

修改 Date 对象中的日期组件

setFullYear(year, [month], [date])
setMonth(month, [date])
setDate(date)
setHours(hour, [min], [sec], [ms])
setMinutes(min, [sec], [ms])
setSeconds(sec, [ms])
setMilliseconds(ms)
setTime(milliseconds)(使用自 1970-01-01 00:00:00 UTC+0 以来的毫秒数来设置整个日期)
// 以上方法除了 setTime() 都有 UTC 变体,例如:setUTCHours()。

Date.parse(str) 方法

可从字符串中读取日期
let ms = Date.parse(‘2012-01-26T13:51:50.417-07:00’);
alert(ms); // 1327611110417 (时间戳)

度量(Benchmarking)

有时我们需要更加精准的时间度量。JavaScript 自身并没有测量微秒的方法(百万分之一秒),但大多数运行环境会提供。例如:浏览器有 performance.now() 方法来给出从页面加载开始的以毫秒为单位的微秒数(精确到毫秒的小数点后三位):

alert(Loading started ${performance.now()}ms ago);
// 类似于 “Loading started 34731.26000000001ms ago”
// .26 表示的是微秒(260 微秒)
// 小数点后超过 3 位的数字是精度错误,只有前三位数字是正确的
Node.js 有 microtime 模块以及其他方法。从技术上讲,几乎所有的设备和环境都允许获取更高精度的数值,只是不是通过 Date 对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值