由于UTC,Angular JS中的DatePicker错误

时间:2014-10-10 07:06:01

标签: javascript angularjs

我在UI中选择了2014年9月12日。

以下是代码

    ctrl.$formatters.push(function (modelValue) {
            console.log(modelValue);
            var dt = new Date(modelValue);
            dt.setMinutes(dt.getMinutes() + dt.getTimezoneOffset());
            console.log(dt)
            return dt;
        });

我看到的两个控制台日志如下。

  1. 09/11/2014
  2. Wed Sep 10 2014 18:30:00 GMT + 0530(IST)
  3. 我不确定为什么没有正确执行从UTC到本地的转换。

    提前致谢。

1 个答案:

答案 0 :(得分:1)

目前还不清楚你要做什么。输入没有时间。是否要将当天的当前时间添加到任意日期?或者你只是想要一个当地的日期代表?我正在考虑后者。

而不是dt.setMinutes(...)和以下两行,将所有三行替换为:

return dt.toLocaleDateString();

如果你想在任何输入的日期设置现在的时间(我不知道为什么......)但你可能会尝试:

dt.setTime( new Date().getTime() );

而不是setMinutes(...)行。

那么你可以     return dt.toLocaleString;

所有日期对象都存储为毫秒,就像1972年一样。最好使用内置的Date对象方法从中获取所需的内容。 Here are the docs供参考。