moment 时区现在将当地时间增加一小时
moment timezone now add one hour to local time
当我尝试使用当地时间格式化日期时遇到问题(以前没有遇到过):
var dateStartFormat = "2021-1-8 08:00"
var romeStart = moment.tz(dateStartFormat, "Europe/Rome");
var romeStartFormat = romeStart.format();
romeStartFormat 应该给我:2021-01-08T08:00:00+01:00
相反,他增加了一个小时并给了我:2021-01-08T**09:00:**00+01:00
我没有更改代码中的任何内容,直到几天前它才起作用。
您应该将格式添加到 momnet.tz()
var dateStartFormat = "2021-1-8 08:00"
var romeStart = moment.tz(dateStartFormat, "YYYY-M-D HH:mm" , "Europe/Rome");
var romeStartFormat = romeStart.format();
“几天前”您可能还在 12 月底,所以时间戳可能类似于 "2020-12-28 08:00"
。现在在 1 月,你会得到一个像 "2021-1-8 08:00"
这样的时间戳,这不是 momentjs 的有效输入格式。 Momentjs 期望 RFC2822 或 ISO 格式作为输入,因此日和月都必须用两位数字给出(因此如果 < 10,则为前导 0)。或者,您也可以为传入的时间戳提供格式说明符,以便 momentjs 可以解析日期。当您 运行 您的代码时,您可能会注意到一个警告 ...
考虑到这一点,此代码段应该 return 预期结果。
let
date1 = "2021-01-08 08:00",
date2 = "2021-1-8 08:00"
//use a proper formated timestamp
let
start1 = moment.tz(date1, "Europe/Vienna"),
format1 = start1.format();
//provide a format specifier
let
start2 = moment.tz(date2, "yyyy-M-D HH:mm", "Europe/Vienna"),
format2 = start2.format();
console.log(format1);
console.log(format2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.32/moment-timezone-with-data.min.js"></script>
当我尝试使用当地时间格式化日期时遇到问题(以前没有遇到过):
var dateStartFormat = "2021-1-8 08:00"
var romeStart = moment.tz(dateStartFormat, "Europe/Rome");
var romeStartFormat = romeStart.format();
romeStartFormat 应该给我:2021-01-08T08:00:00+01:00 相反,他增加了一个小时并给了我:2021-01-08T**09:00:**00+01:00
我没有更改代码中的任何内容,直到几天前它才起作用。
您应该将格式添加到 momnet.tz()
var dateStartFormat = "2021-1-8 08:00"
var romeStart = moment.tz(dateStartFormat, "YYYY-M-D HH:mm" , "Europe/Rome");
var romeStartFormat = romeStart.format();
“几天前”您可能还在 12 月底,所以时间戳可能类似于 "2020-12-28 08:00"
。现在在 1 月,你会得到一个像 "2021-1-8 08:00"
这样的时间戳,这不是 momentjs 的有效输入格式。 Momentjs 期望 RFC2822 或 ISO 格式作为输入,因此日和月都必须用两位数字给出(因此如果 < 10,则为前导 0)。或者,您也可以为传入的时间戳提供格式说明符,以便 momentjs 可以解析日期。当您 运行 您的代码时,您可能会注意到一个警告 ...
考虑到这一点,此代码段应该 return 预期结果。
let
date1 = "2021-01-08 08:00",
date2 = "2021-1-8 08:00"
//use a proper formated timestamp
let
start1 = moment.tz(date1, "Europe/Vienna"),
format1 = start1.format();
//provide a format specifier
let
start2 = moment.tz(date2, "yyyy-M-D HH:mm", "Europe/Vienna"),
format2 = start2.format();
console.log(format1);
console.log(format2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.32/moment-timezone-with-data.min.js"></script>