moment('Sat Sep 12 2015 15:00:00 GMT+0100 (GMT Daylight Time)').format()
// Error: core-test.js:52920 Uncaught Error: input not handled by moment(…)
我很不高兴为什么时刻无法处理这个日期,即使剥离它我仍然无法解决这个问题。
var date = 'Sat Sep 12 2015 15:00:00 GMT+0100 (GMT Daylight Time)'.split(' GMT')[0];
moment(date).format()
//The same error
答案 0 :(得分:1)
您可以提供if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) {
window.location="DEEPLINKURL";
}else{
window.location="LINKURL";
}
用于解析字符串的格式:http://momentjs.com/docs/#/parsing/string-format/
但是您的日期格式无法使用可用选项,因此您必须删除部分信息。即引用偏移“GMT”和“GMT日光时间”的时区名称。由于时区是在“+0100”部分编码的,我将假设删除这些引用是可以的。
首先创建一个“清理”字符串日期的函数:
moment
如果在您提供的字符串function cleanDateString(formattedDate) {
return formattedDate.replace(/(.*?)(\w{3})(((\+|-)\d{4}).*)/g,"$1$4");
}
上调用该函数,则输出将为
“星期六2015年9月12日15:00:00 +0100”
现在可以使用正确的格式解析这一点。
如果查看http://momentjs.com/docs/#/displaying/format/,则此字符串所需的格式为
'ddd MMM DD YYYY mm:hh:ss ZZ'
如果你把上面的两件事情结合起来,那么你可以像这样得到你的日期
cleanDateString('Sat Sep 12 2015 15:00:00 GMT+0100 (GMT Daylight Time)')
这将适用于您的给定字符串
function parseCustomDate(formattedDate) {
return moment(cleanDateString(formattedDate),'ddd MMM DD YYYY mm:hh:ss ZZ');
}
如果您想详细了解正则表达式的工作原理,可以在此链接查看“说明”和“匹配信息”部分:https://regex101.com/r/tH6hM9/1。我用它来调整分组和规则
答案 1 :(得分:-1)
您的日期格式应如this:
var date2 = '2015-09-12T15:00:00+00:00'; // UTC