无需date.js,拼接日期时间转Unix时间戳的代码是否有效?
无需date.js,原生JavaScript完全可以得到正确结果
当然可以!你写的这段原生JS代码在现代浏览器(Chrome、Firefox、Edge等)以及Node.js环境下都能正常工作,完全不需要依赖date.js这类第三方库。
咱们拆解下你的代码逻辑:
- 你把日期和时间字符串拼接成了
"2012-08-10 10:10"这种格式 - 用
new Date(dte)把这个字符串转换成Date对象 - 通过
getTime() / 1000得到秒级的Unix时间戳
现代JS运行环境已经很好地支持这种YYYY-MM-DD HH:mm格式的日期字符串解析,生成的Date对象是准确的,对应的时间戳自然也是正确的。
小提醒:时区一致性问题
不过有个细节需要注意:如果你的字符串没有指定时区,不同环境可能会默认用本地时区或者UTC时区来解析(早期浏览器可能有差异,但现在主流环境基本统一为本地时区)。如果想要完全避免时区歧义,你可以把拼接后的字符串改成标准ISO格式,比如:
var dte = date + "T" + time; // 变成"2012-08-10T10:10" // 或者强制指定UTC时区 var dte = date + "T" + time + "Z";
这样解析出来的时间戳会更稳定,不会受运行环境的本地时区影响。
兼容性补充
如果你的代码需要兼容非常老旧的浏览器(比如IE8及更早版本),那确实可能出现解析失败的情况,但这类浏览器现在已经几乎被淘汰了,日常开发完全不用考虑。
总结一下:你的原生JS代码没问题,不用date.js也能得到正确结果~
内容的提问来源于stack exchange,提问作者san
相关产品推荐
相关产品推荐

