转换时区的XML解析时间和日期与moment.js

Convert time zone of XML parsed time and date with moment.js

本文关键字:日期 moment js 时间 时区 XML 转换      更新时间:2023-09-26

我正在用Javascript解析XML文件,我想使用moment.js将日期转换为我的本地时区,但我被卡住了。基本解析包括获取日期:

document.write(x[i].getElementsByTagName("Date")[0].childNodes[0].nodeValue);

生成类似31/12/2016 23:00的东西。使用moment.js可以这样格式化日期:

var utcDate = moment.utc('31/12/2016 23:00', 'DD/MM/YYYY HH:mm');
var localDate = utcDate.local();
document.write(localDate);

01/01/2017 01:00写入当前时区。但是我不知道如何使用上面的解析方法。尝试修改变量,但结果只有"无效日期"。

var utcDate = moment.utc('x[i].getElementsByTagName("Date")[0].childNodes[0].nodeValue', 'DD/MM/YYYY HH:mm');
var localDate = utcDate.local();
document.write (localDate);

有人有什么建议吗?可能有其他的解决方案比使用moment.js,但它似乎是最好的和最灵活的选择。

您已经将XML遍历放入字符串中。如果不是真正的javascript,遍历就不会发生。此外,moment.js将尝试将该文本字符串解析为日期,而不是遍历的值。

'x[i].getElementsByTagName("Date")[0].childNodes[0].nodeValue'

你需要取消你的遍历来获得它的值,然后把它提供给moment.js。

var utcDate = moment.utc(x[i].getElementsByTagName("Date")[0].childNodes[0].nodeValue, 'DD/MM/YYYY HH:mm');