javascript - 用时刻 JS 格式化日期以匹配
问题描述
我正在使用第三方 API 和Moment JS进行 Javascript 中的某些日期格式。
第三方 APIepoch
以毫秒为单位对一些数据/结果进行分组,例如:
1559260800000
这相当于:
GMT: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
这相当于:
GMT: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 月,当我们在 BST 之外时,日期是格林威治标准时间,所以我也需要这个工作。
解决方案
由于您的日期选择器Date
根据当地时间生成对象,但您实际上希望它们以 UTC 格式生成,那么您可以执行以下操作:
var timestamp = moment(dayElem.dateObj).utc(true).valueOf();
传递true
给该utc
函数将告诉它保留日期和时间值并移动偏移量,并在选择不同的时间点进行权衡。就您而言,这似乎是您所需要的。
另外,请不要称它为 Epoch Time。:)
推荐阅读
- python - torch.nn.embedding 有运行时错误
- javascript - 为什么不能用点符号访问带有数字键的 JS 对象
- java - 使用回收视图时出现错误 Resources$NotFoundException
- java - 在 Java 中从字符串中获取单词并将它们更改为小写。
- javascript - d3 嵌套数据模型的更新模式
- javascript - 不推荐使用 rowRange.setBackgroundColor
- r - 应用返回不同尺寸的不同答案,R
- javascript - ajax没有发回PHP响应
- vmware - VMWare - 多个 VM 与一个特定 VM(不是 ESX)的同步时间
- python-3.x - 将整数转换为日期