【发布时间】:2016-05-17 01:25:48
【问题描述】:
我遇到了一个奇怪的问题。
在我的表单中,我使用 2 个输入,类型为“时间”:
<div style="float:left;width:50%;">
<div style="background:#efefef;!important;line-height:30px;font-size:14px;text-transform: uppercase;text-align:center;border:none">
Start time
<input type="time" name="start_time" formatted-time ng-model="editFields.disable_freelance_start_time" style="width:100%;border:1px solid #ccc;border-right:none;margin-bottom:10px;padding:5px;" />
</div>
</div>
<div style="float:left;width:50%">
<div style="background:#efefef;!important;line-height:30px;font-size:14px;text-transform: uppercase;text-align:center;border:none;border-left:2px solid #ccc">
End time
<input type="time" name="end_time" formatted-time ng-model="editFields.disable_freelance_end_time" style="width:100%;border:1px solid #ccc;border-left:none;margin-bottom:10px;padding:5px;" />
</div>
</div>
并在我的控制器中设置我的模型:
$scope.editFields.disable_freelance_start_time = new Date();
$scope.editFields.disable_freelance_end_time = new Date();
但是当我“提交表格”并检查它显示错误值的对象时 - 时间是 2 小时..(我住在阿姆斯特丹,也许有夏令时?)
它显示了这个:
[start_time] => 2016-05-17T01:21:56.382Z
[end_time] => 2016-05-17T01:21:56.382Z
所以它显示 1:21 但现在是 03:21 -- 为什么会发生这种情况,我该如何解决这个问题?
【问题讨论】:
-
正常,获取TimeZoneOffset,以分钟为单位,可以手动计算。
-
注意时区是 Z 或 GMT。阿姆斯特丹是 GMT+0200,
2016-05-17T01:21:56.382Z与2016-05-17T03:21:56.382+0200是同一时刻。 -
我明白,但我把它发送到我的 php 后端,我把它作为一个字符串。我应该在php中处理这个吗?
-
能否提供formattedTime指令代码?您尝试存储来自客户端浏览器的 Date 对象
标签: javascript angularjs html date time