angularjs dateTimePicker如何不UTC时间?

时间:2016-05-27 17:55:14

标签: javascript angularjs datetimepicker datetime-format

我正在使用this dateTimePicker 作为我的angularjs应用,我遇到的问题是用户输入的内容会被转换为其他基于UTC的内容时间相差很多小时(屏幕截图如下,组件和旁边的文字都使用相同的ng-model)。

enter image description here

无论如何强制这个组件产生的输出完全符合用户的输入?就像在这种情况下,我希望得到“ 2016-05-24 12:00 AM ”!

2 个答案:

答案 0 :(得分:1)

使用日期过滤器并将时区留空日期值,将时区保留为空将使用浏览器默认时区:

{{date | date: 'yyyy-MM-dd hh:mm:ss Z' : ''}}

参考:https://docs.angularjs.org/api/ng/filter/date

答案 1 :(得分:1)

您可以使用此代码:

var d = new Date($scope.date);
var day = d.getDate();
var mon = d.getMonth()+1;
var year = d.getFullYear();
var hour = d.getHours();
var min = d.getMinutes();

if(day <10) day = "0"+day;
if(mon <10) mon = "0"+mon;

$scope.newDate = day+"-"+mon+"-"+year+" "+ hour + ":"+ min;
alert($scope.newDate);

要将此24小时转换为12小时制,请按照以下两个问题的答案进行。

Converting 24 hour time to 12 hour time w/ AM & PM using Javascript

Javascript: convert 24-hour time-of-day string to 12-hour time with AM/PM and no timezone