Ton*_*rix 10 javascript momentjs
我正在尝试在moment.js中设置日期的时区而不更改时间值
我在utc得到一个约会:
date.toString() //Sun Sep 27 2015 00:00:00 GMT+0000
我需要在不改变时间的情况下设置时区.
Sun Sep 27 2015 00:00:00 GMT-0500
如果我使用date.utcOffset(moment().utcOffset())它添加偏移量:
date.toString() //Sat Sep 26 2015 19:00:00 GMT-0500
我可以
date = moment(date.format("YYYYMMDDHHmmssSSSS"), "YYYYMMDDHHmmssSSSS")
但这似乎是一种效率低下的方法.
有没有什么方法可以在不改变时间的情况下改变时区?
Gri*_*inn 12
在撰写本文时(Moment 2.22),您可以someLocalMomentVariable.utc(true)使用someUtcMomentVariable.local(true).
使用时刻时区,如果您可以识别时区,您也可以通过传递标志来设置它,而无需调整true时间
const tz = "America/New_York"; // GMT-0500
moment(date).tz(tz, true); // true flag identifies not changing time when updating time zone
Run Code Online (Sandbox Code Playgroud)
文档(尽管它没有解释该boolean标志)
转换为区域
如果您使用的是 moment.js,请使用 utcOffset 和 true 作为第二个参数,例如: date2 = moment(date1).utcOffset('+0400', true)
如果您使用的是矩时区,则可以在第二个参数为真的矩对象上使用 tz 函数,例如: date1 = moment(date1).tz('Asia/Kolkata', true)
| 归档时间: |
|
| 查看次数: |
3781 次 |
| 最近记录: |