Moment return 传递给它的相同值而不是 utc 值
Moment return the same value passed to it instead of utc value
我正在尝试将日期转换为 utc,但时刻 return 与我使用的值相同。
例如
moment(date, 'YYYY-MM-DD HH:mm:ss').utc().format('YYYY-MM-DD HH:mm:ss')
如果我使用date = '2022-01-07 11:30:00'
时刻return2022-01-07 11:30:00
我必须先设置值的时区吗?为什么 moment return 值错误?那个日期应该 return +3 小时。
您传入的数据没有任何时区指示,所以(我相信)现在假设它已经在 utc 中。
在相关新闻中,研究使用 date-fns 库而不是 moment。时光渐老...
Moment.js is a legacy project, now in maintenance mode. In most cases,
you should choose a different library.
这 returns 是同一天,因为您从未指定任何时区
var time = moment("2013-08-26 16:55:00") //this creates time in my tz
您可以这样设置时区:
var time = moment("2013-08-26 16:55:00").tz("America/Los_Angeles");
您需要定义 date
所在的时区,然后偏移量将符合预期:
示例,使用 Europe/Amsterdam
作为时区
const date = '2022-01-07 11:30:00';
const utc = moment(date, 'YYYY-MM-DD HH:mm:ss')
.tz('Europe/Amsterdam')
.utc()
.format('YYYY-MM-DD HH:mm:ss');
console.log(utc);
<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>
这将输出 2022-01-07 10:30:00
,因为与 UTC
相比,阿姆斯特丹时间是 -1
。
小边节点,引用MomentJS Project Status page
We now generally consider Moment to be a legacy project in maintenance mode. It is not dead, but it is indeed done.
In practice, this means:
- We will not be adding new features or capabilities.
- We will not be changing Moment's API to be immutable.
- We will not be addressing tree shaking or bundle size issues.
- We will not be making any major changes (no version 3).
- We may choose to not fix bugs or behavioral quirks, especially if they are long-standing known issues.
我正在尝试将日期转换为 utc,但时刻 return 与我使用的值相同。
例如
moment(date, 'YYYY-MM-DD HH:mm:ss').utc().format('YYYY-MM-DD HH:mm:ss')
如果我使用date = '2022-01-07 11:30:00'
时刻return2022-01-07 11:30:00
我必须先设置值的时区吗?为什么 moment return 值错误?那个日期应该 return +3 小时。
您传入的数据没有任何时区指示,所以(我相信)现在假设它已经在 utc 中。
在相关新闻中,研究使用 date-fns 库而不是 moment。时光渐老...
Moment.js is a legacy project, now in maintenance mode. In most cases, you should choose a different library.
这 returns 是同一天,因为您从未指定任何时区
var time = moment("2013-08-26 16:55:00") //this creates time in my tz
您可以这样设置时区:
var time = moment("2013-08-26 16:55:00").tz("America/Los_Angeles");
您需要定义 date
所在的时区,然后偏移量将符合预期:
示例,使用 Europe/Amsterdam
作为时区
const date = '2022-01-07 11:30:00';
const utc = moment(date, 'YYYY-MM-DD HH:mm:ss')
.tz('Europe/Amsterdam')
.utc()
.format('YYYY-MM-DD HH:mm:ss');
console.log(utc);
<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>
这将输出 2022-01-07 10:30:00
,因为与 UTC
相比,阿姆斯特丹时间是 -1
。
小边节点,引用MomentJS Project Status page
We now generally consider Moment to be a legacy project in maintenance mode. It is not dead, but it is indeed done.
In practice, this means:
- We will not be adding new features or capabilities.
- We will not be changing Moment's API to be immutable.
- We will not be addressing tree shaking or bundle size issues.
- We will not be making any major changes (no version 3).
- We may choose to not fix bugs or behavioral quirks, especially if they are long-standing known issues.