我想知道将非 ISO 格式的字符串日期转换为不同的偏移量/时区的正确方法。
我目前得到了 3 个值:
- 日期格式为 MM/DD/YYYY (23/11/2016)
- 24 小时格式的时间 (23:13)
- 时区偏移量 (-07:00)
我想将所述日期转换为用户的时区。
我正在尝试将格式转换为 moment timezone 的 moment.tz() 函数接受的格式('2016-11-23T23:13-07:00'),但我不知道如何在不拆分日期数组并将其转换为所述日期。
Moment 的时区有我需要将日期转换为本地时区的工具。例如:
moment.tz('2016-11-23T23:13-07:00', moment.tz.guess());
关于如何最好使用 momentJS 将偏移量 -07:00 的 23/11/2016 23:13 转换为本地日期有什么想法吗?
最佳答案
为什么不直接格式化为带有偏移量的 ISO 8601 字符串并将其提供给 moment.js?
function customToISOString(date, time, offset){
return date.split(/\D/).reverse().join('-') + 'T' + time + offset;
}
document.write(customToISOString('23/11/2016','23:13','-07:00')); // 2016-11-23T23:13-07:00
大多数现代浏览器也会解析它,但不要这样做,因为仍然有很多旧浏览器会失败。
关于javascript - 将日期从带有偏移量的字符串转换为不同时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35088391/