扫码关注官方订阅号
后台返回的时间格式是“2016-10-26T17:31:10”,要分成,hour、minute、weekday、day、month和year显示。之前想过用字符串分开,除此之外,用new Date('2016-10-26T17:31:10')也试过,果不其然的失败了。不懂就问,求助!
new Date('2016-10-26T17:31:10')
欢迎选择我的课程,让我们一起见证您的进步~~
Chrome,FireFox,IE9+测试可以使用new Date('2016-10-26T17:31:10')
Chrome
FireFox
IE9+
new Date('2016-10-26T17:31:10') 里面的“T”浏览器下面解析有差异,之前被这个坑死了!
为什么我用 new Date('2016-10-26T17:31:10') 成功了?
你什么浏览器?
系统:macOS 10.12浏览器:chrome 54.0.2840.71 (64-bit)
macOS 10.12
chrome 54.0.2840.71 (64-bit)
你是想要什么效果啊?
这样行不:
var str = "2016-10-26T17:31:10"; var strA = str.split(/[a-zA-Z]/); var d = {} d.year = strA[0].split('-')[0]; d.month = strA[0].split('-')[1]; d.day = strA[0].split('-')[2]; d.hour = strA[1].split(':')[0]; d.minute = strA[1].split(':')[1]; d.second = strA[1].split(':')[2]; d.weekday = str.match(/[a-zA-Z]/)[0];
话说还是让后端直接传秒数吧...
踩过坑的路过,建议对于这种情况提前和后台确定好时间的格式,然后不要用
因为你永远不知道其他浏览器是否支持这种格式,确定好格式后,前端自己做日期分割,判断格式是否正确,再使用
new Date(year, month[, date[, hours[, minutes[, seconds[, milliseconds]]]]]);
这样的方式来创建日期对象,就不会有跨浏览器的问题了。当然,如果使用timestamp的话也是可以的,就是传string会有坑,不同浏览器对于字符串的解析支持不同导致的。
moment.js
你需要这个
用万能的正则
var a = /^(20\d{2})-(\d{1,2})-(\d{1,2})T(\d{1,2}):(\d{1,2}):(\d{1,2})$/; a.exec('2016-10-26T17:31:10'); //["2016-10-26T17:31:10", "2016", "10", "26", "17", "31", "10"]
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
Chrome,FireFox,IE9+测试可以使用new Date('2016-10-26T17:31:10')new Date('2016-10-26T17:31:10') 里面的“T”浏览器下面解析有差异,之前被这个坑死了!
为什么我用
new Date('2016-10-26T17:31:10')成功了?你什么浏览器?
环境
系统:
macOS 10.12浏览器:
chrome 54.0.2840.71 (64-bit)你是想要什么效果啊?
这样行不:
话说还是让后端直接传秒数吧...
踩过坑的路过,建议对于这种情况提前和后台确定好时间的格式,然后不要用
因为你永远不知道其他浏览器是否支持这种格式,确定好格式后,前端自己做日期分割,判断格式是否正确,再使用
这样的方式来创建日期对象,就不会有跨浏览器的问题了。
当然,如果使用timestamp的话也是可以的,就是传string会有坑,不同浏览器对于字符串的解析支持不同导致的。
moment.js
你需要这个
用万能的正则