【发布时间】:2019-10-02 20:52:53
【问题描述】:
我正在使用第三方 API 和 Moment JS 来进行 Javascript 中的某些日期格式。
第三方 API 将一些数据/结果与epoch 日期分组,以毫秒为单位,例如:
1559260800000
这相当于:
格林威治标准时间:2019 年 5 月 31 日星期五 00:00:00
您的时区:2019 年 5 月 31 日星期五 01:00:00 GMT+01:00 DST
相对:15 天内
我们使用Flatpickr 日历进行日期选择。选择日期后,它将以本地日期格式返回所选日期,例如:
Fri May 31 2019 00:00:00 GMT+0100 (British Summer Time)
如果我使用 moment 进行转换,我会得到以下信息:
var epoch = moment.utc(dayElem.dateObj).valueOf();
1559257200000
这相当于:
格林威治标准时间:2019 年 5 月 30 日星期四 23:00:00
您的时区:2019 年 5 月 31 日星期五 00:00:00 GMT+01:00 DST
相对:15 天内
我知道这个问题与当地时区有关,第一个是 GMT 00:00:00,第二个是 GMT 00:01:00,但我不确定如何解决它。
此外,一年中的晚些时候,例如 12 月,当我们不在英国夏令时时,日期是格林威治标准时间,所以我也需要这个工作。
【问题讨论】:
-
你能澄清一下这个问题吗?你说你理解它与当地时区有关,那么你在寻找什么样的解决方案?例如你现在没有得到什么之后你需要的行为是什么?
-
两个epoch字符串需要匹配。也许我从日历中获取日期并忽略时间,将时区设置为 00:00:00 的 gmt 然后生成它。但最终的目标是获得两个匹配的时期。所以第一个是正确的
-
您的意思是您需要将所选日期格式化为第三方 API 时区中的纪元值吗?
标签: javascript datetime momentjs date-formatting flatpickr