首先,感谢您的帮助,社区很棒。 我在解析日期和时间时遇到问题。这是我的代码:
var date = mail.bodyText.match(/\=\= date \=\=\s*(.*[^\s*])/);
if (date) {
var string1 = date[1].match(/^\d{4}\-\d{2}-\d{2}/);
var string2 = date[2].match(\s(\d{2}\:\d{2}\:\d{2}));
var string3 = date[3].match(\s(\+\d{4}));
var parts1 = string1.split("-");
var parts2 = string2.split(":");
if (parts1 && parts2)
{
var dt = new Date(parseInt(parts1[0], 10), parseInt(parts1[1], 10) - 1, parseInt(parts1[2], 10), parseInt(parts2[3], 10), parseInt(parts2[4], 10), parseInt(parts2[5], 10));
}
date_final = dt;
}
date_final
是在其他地方定义的,采用日期时间选择器格式,这是我尝试解析的输入:
blabla
== date ==
2016-02-13 16:22:10 +0200
blabla
每次执行代码时,都会遇到解析问题。变量date_final
无法处理解析日期。您认为此代码缺少什么?
更新:
这就是我要讲的内容。我无法找到问题所在:
var date = mail.bodyText.match(/\=\= date \=\=\s*(.*[^\s*])/);
if (date) {
var initial = date[1];
var formated = initial.substring(0, 19);
var final = formated.replace(/-/g, '/');
var last = new Date(final);
Field = last;
logging += "{date=" + Field + "}";
}
代码实际上是解析电子邮件并通过SSL发送结果。最让我惊讶的是,日志不断发布以下日期的输出以及“解析问题”:date = Sat Feb 27 2016 16:22:10 GMT + 0200(CEST)。
您认为问题出在代码上还是与代码实施的设备如何处理有关?
谢谢
简
答案 0 :(得分:0)
很抱歉在评论中回答。
这是您问题的一种解决方案:
var dateStr = '2016-02-13 16:22:10 +0200';
// get yyyy-MM-dd HH:mm:ss
var formatedStr = dateStr.substring(0, 19);
// get yyyy/MM/dd HH:mm:ss in case of working on most of the browsers
var finalStr = formatedStr.replace(/-/g, '/');
// Date object can easily parse the datetime string we formated above
var date = new Date(finalStr);
答案 1 :(得分:-1)