Javascript新日期不匹配

时间:2015-10-09 08:24:49

标签: javascript angularjs date datetime format

我一直在努力让这件事起作用。这是我的问题。

我以不同的格式(mm-dd-yyyy-timezone, mm-dd-yyy hh:mm:ss, yyyy-mm-dd-timezone, yyyy-mm-dd hh:mm:ss)从REST API获取日期,但我必须以yyyy-mm-dd格式对其进行格式化。我使用substring来捕获前10个字符,通过忽略时间/时区来获取Datestring。

在此过程中,我观察到了这个问题。

new Date("08-11-1987") gives me Tue Aug 11 1987 00:00:00 GMT-0700 (Pacific Daylight Time)

在哪里,

new Date("1987-08-11") gives me Mon Aug 10 1987 17:00:00 GMT-0700 (Pacific Daylight Time)

为什么在创建Date对象时会有一天的差异。

1 个答案:

答案 0 :(得分:0)

如果您正在使用像您一样的AngularJS,请在您的代码中应用。您可以使用$ filter来制作您想要的日期。在你的情况下,它将是:

$scope.datestring = $filter("date")(data.date, 'yyyy-MM-dd');

有关$ filter(date)的更多信息,您可以找到here

编辑:

所以,如果我理解正确,你的约会日期为:10-12-2015,你想将它输出为2015-10-12?你使用javascript datepicker来获取你的日期还是......?当我在日期选择器中输入日期时,日期如下所示:

Mon Oct 12 2015 00:00:00 GMT+0200 (W. Europe Daylight Time)

此变量称为:data.date。在此之后,我使用它来根据您的需要过滤日期,即yyyy / MM / dd。

$scope.datestring = $filter("date")(data.date, 'yyyy/MM/dd');

产量是2015/10/12。我没有得到任何奇怪的数字:(