javascript - 如何解决 12 小时格式中分钟精度丢失的问题?

标签 javascript formatting momentjs toisostring

我已将 ISO 日期字符串转换为 momentjs 时刻,然后使用 .format("MM/DD/YYYY HH:MM") 格式化该时刻

当我输出最终格式化时刻时,分钟值与最初从 iso 字符串读回的值不正确。

在这种情况下,ISO 字符串值包含 3:10 PM 或字符串中表示的“2016-08-03T03:10:00.000Z”。 但是当我调用 format 时,时刻​​值为 4:07PM,这意味着在 format 过程中已经减去了三分钟。

在调试期间,我在每个分配阶段记录了以下值:

第 1 步(将 db 值转换为 ISO 字符串):

var actualBCR_Local = moment.utc('@Model.Escalation.Actual_BCR_ISO').toISOString();

value: "2016-08-03T03:10:00.000Z"

第 2 步(将 ISO 字符串转换为 momentjs 时刻以表示本地时间 GMT+1):

 var actualBCR_Local_Moment = moment(actualBCR_Local);

 value: Wed Aug 03 2016 04:10:00 GMT+0100 (GMT Daylight Time)

第 3 步(以 12 小时格式格式化该时刻以进行演示,问题就在这里,因为与原始值(应为 04:10)相比,我损失了 3 分钟):

 var actualBCR_Local_Formatted = actualBCR_Local_Moment.format("MM/DD/YYYY HH:MM"); 

 value: "08/03/2016 04:08"

以 12 小时格式格式化时刻时,如何防止分钟精度丢失?

最佳答案

那是因为你使用了错误的格式

在此section ,您会发现您正在使用 HH:MM ,这意味着 hour:month

如果您使用HH:mm,那么您将获得正确的时间。

这就是为什么你会损失 2 分钟,因为它将 08 显示为“月份”

这是我测试过的

example here

关于javascript - 如何解决 12 小时格式中分钟精度丢失的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38679715/

相关文章:

javascript - 如何将变量映射到对象

javascript - Angular - 与 DIV 元素样式的 2 路数据绑定(bind)

javascript - React-router v6 路由组合。是否可以呈现自定义路线?

javascript - 如何导入 moment.js?

javascript - 日期在 IE 浏览器中显示无效,但适用于 chrome 和 Firefox

javascript - 带验证的垂直条形图

java - 如何将前导零添加到国家号码?

WPF:将格式应用于 RichTextBox 的快速方法

c# - 寻找一个离线库来格式化 HTML,我可以将其与 .NET 代码一起使用

JavaScript instanceof 和 moment.js