我已将 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 显示为“月份”
这是我测试过的
关于javascript - 如何解决 12 小时格式中分钟精度丢失的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38679715/