我一直在努力让这件事起作用。这是我的问题。
我以不同的格式(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对象时会有一天的差异。
答案 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。我没有得到任何奇怪的数字:(