0
new Date(moment().year(), moment().month(), moment().day(), vm.newHearing().HearingTime().split(":")[0], vm.newHearing().HearingTime().split(":")[1]).toLocaleString()

日期列的客户端值为 11/5/2013 10:15:00 AM。时间从 HTML5 时间输入控件中选择。

当我在保存实体后签入数据库时​​,它显示的时间值不正确:11/5/2013 3:15:00 PM

4

1 回答 1

0

看来您正在使用moment.js,这很好,除非您没有正确使用它

试试这个:

moment(vm.newHearing().HearingTime(), "HH:mm").toISOString()

这将通过用户本地时区在当天选择的时间,转换为 UTC 时间和 ISO 格式。

现在这可能不是您想要做的。根据您的要求,您可能希望这样做:

moment.utc(vm.newHearing().HearingTime(), "HH:mm").toISOString()

这几乎是一样的,只是它假设输入时间已经是 UTC。

或者你可能想要这个:

moment(vm.newHearing().HearingTime(), "HH:mm").format("YYYY-MM-DDTHH:mm:ss")

这个根本不会尝试转换为 UTC。

对于所有选择,我以 ISO8601 格式发出日期字符串。由于您要将其发送回服务器,因此这是最佳选择。当您使用toLocaleString时,它会生成一种仅适用于显示的格式。

于 2013-11-08T16:43:04.193 回答