JS Date对象及日期处理的坑

本文讨论了JavaScript中使用Date对象时可能遇到的错误,特别是在不同浏览器上的表现。建议使用/作为日期分隔符,或者使用moment.js库来处理日期。详细介绍了Date对象的构造函数、实例方法和静态方法,包括它们之间的转换方法。
摘要由CSDN通过智能技术生成

1. Bug

不要这样写new Date('2019-3-5'),会出bug。这个String格式为YYYY-M-D。

在iOS手机和safari浏览器上,这个格式会报错,改为YYYY-MM-DD,即new Date('2019-03-05')是可以的,用/也是可以的,即new Date('2019/3/5')

下图为Safari的结果:

在这里插入图片描述

但是,有一些资料提到用’-'连接的日期字符串在IE上转换会失败,试过之后发现并不会,不确定是不是因为IE版本问题。

建议

(1) 日期字符串用/的格式

不管是YYYY/MM/DD还是YYYY/M/D,都可。

var str = '2019-3-5';
str = str.split('-').join('/'); //或: str.replace(new RegExp(/-/g),'/')
var date = new Date(str);
(2) 使用moment.js日期处理类库

官网:http://momentjs.cn/

2. Date对象

(1) 构造函数

注意:构造函数返回的都是Date对象。

[1] new Date()

返回本地日期和时间的Date对象

new Date() //=> Thu Mar 07 2019 11:31:45 GMT+0800 (China Standard Time)
[2] new Date(毫秒时间戳)

参数:毫秒时间戳(表示从1970/01/01 00:00:00为起点的毫秒数)。注意,要加上本地所在时区,因为北京是东八区,所以起始时间是1970/01/01 08:00:00

返回:Date对象

new Date(0) //=> Thu Jan 01 1970 08:00:00 GMT+0800 (China Standard Time)
[3] new Date(日
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值