gpt4 book ai didi

javascript - 使用 momentjs 保存为 UTC 并显示为本地时间

转载 作者:行者123 更新时间:2023-11-30 16:28:15 26 4
gpt4 key购买 nike

我有一个表格,用户可以在其中保存计划日期。我希望能够将日期发送到我的后台,以 utc 格式。我有类似的东西:

<input type="hidden" name="scheduled_publication[publication_date]" value="2015/11/27">
<input type="hidden" name="scheduled_publication[time]" value="13:00">

但问题是,如果我用浏览器时区偏移更改此值,有时我还必须更改日期值。时间偏移为 -02:00 的凌晨 1 点的时间表将更改日期。最简单的场景是获取两个当前值并使用momentjs处理它们吗?

其他问题。如何使用 momentjs 显示正确时区的时间。呈现的原始日期如下所示:2015-11-16 16:47:29 +0100。我尝试使用 .utc method .

> moment('2015-11-16 16:47:29 +0100').format("dddd, MMMM Do YYYY ha")
"Monday, November 16th 2015 4pm"
> moment.utc('2015-11-16 16:47:29 +0100').format("dddd, MMMM Do YYYY ha")
"Monday, November 16th 2015 4pm" #should be 3pm

为什么 local 没有应用在第一个命令上?当我做的时候

> moment('2015-11-16 16:47:29 +0100')
Moment {_isAMomentObject: true, _i: "2015-11-16 16:47:29 +0100", _isUTC: false, _locale: Locale, _d: Mon Nov 16 2015 16:47:29 GMT+0100 (CET)…}

似乎可以识别时区。

当你工作到最后时,很难保持一致。

编辑:

带有评论和答案。首先通过 pickadate 和 pickatime 以 EST 为计算机时间插入数据,我设置值(11 月 20 日 23 点)并转换它们。

> var date = $("[name='scheduled_publication[publication_date]']").val()
> var time = $("[name='scheduled_publication[time]']").val()
> $("[name='scheduled_publication[time]']").val(moment(date + ' ' + time).toISOString())

[<input type=​"hidden" name=​"scheduled_publication[time]​" value=​"2015-11-18T14:​00:​00.000Z">​]

除了这个非常丑陋的 javascript。这对我来说似乎很好。返回值采用 UTC。非常适合我的数据库。

最佳答案

尝试使用ISO date用于在后端存储日期:

moment().date(23).month('August').year(2015).hour(15).minute(45).second(0).millisecond(0).toISOString();
// output: 2015-08-23T10:15:00.000Z

moment('23 aug 2015, 3:45pm', 'DD MMM yyyy, hh:mma').toISOString();
// output: 2015-08-23T10:15:00.000Z

注意时区信息被删除了(Z 表示它在 UTC 中)。现在,将其显示回来:

moment('2015-08-23T10:15:00.000Z').toString(); 
// output: Sun Aug 23 2015 15:45:00 GMT+0230

你看到了吗? GMT+0230 自动到达那里,因为那是当前机器的偏移量。

格式化显示:

moment('2015-08-23T10:15:00.000Z').format('dddd, MMMM Do YYYY h:mma');
// output: Sunday, August 23rd 2015 3:45pm

关于javascript - 使用 momentjs 保存为 UTC 并显示为本地时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33776123/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com