Momentjs返回日期比实际日期落后两天
问题描述:
我想解析下面的日期字符串22-04-2017
。这里是我的代码Momentjs返回日期比实际日期落后两天
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
。我不在乎时间,我只需要日期是正确的。
我该如何解决?
答
只需使用moment(String, String)
而不是parseZone
,因为您的输入不包含时区信息。
作为parseZone
文档说:
矩通常解释输入倍本地时间(或UTC时间如果使用
moment.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>