Momentjs返回日期比实际日期晚两天

时间:2017-04-19 07:30:57

标签: date momentjs

我正在尝试解析以下日期字符串22-04-2017。这是我的代码

var date = moment.parseZone($scope.booking.startDate, 'DD-MM-YYYY').format();

$scope.booking.startDate is 22-04-2017

但我得到以下日期2017-04-20T22:13:00-20:17。我不关心时间,我只需要正确的日期。

我该如何解决?

1 个答案:

答案 0 :(得分:1)

只需使用moment(String, String)代替parseZone,因为您的输入不包含时区信息。

正如parseZone文档所说:

  

时刻通常将输入时间解释为本地时间(如果使用moment.utc()则为UTC时间)。但是,输入字符串本身通常包含时区信息。 #parseZone解析时间,然后根据输入字符串设置区域。

这是一份工作样本:

// Mocking input value
var $scope = {
  booking: {
    startDate: '22-04-2017'
  }
};
var date = moment($scope.booking.startDate, 'DD-MM-YYYY').format();
console.log(date);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>