我正在尝试将日期格式化为英国格式,但尽管使用了我认为正确的格式。使用单个数字日期(1 ... 9)的日期会转换日期和月份,但所有其他日期都正确格式化。我确定基本的东西。
<script>
$(document).ready(function(){
// Single date with icon
$(function(){
$("#date-icon").datepicker({
dateFormat: 'dd/mm/yy',
minDate: new Date(),
prevText: '<i class="fa fa-caret-left"></i>',
nextText: '<i class="fa fa-caret-right"></i>'
});
});
// Popup time interval
$(function() {
$( "#depart_date" ).datepicker({
dateFormat: 'dd/mm/yy',
minDate: new Date(),
prevText: '<i class="fa fa-caret-left"></i>',
nextText: '<i class="fa fa-caret-right"></i>',
onClose: function( selectedDate ) {
$( "#return_date" ).datepicker( "option", "from_date", selectedDate );
}
});
$( "#return_date" ).datepicker({
dateFormat: 'dd/mm/yy',
prevText: '<i class="fa fa-caret-left"></i>',
nextText: '<i class="fa fa-caret-right"></i>',
onClose: function( selectedDate ) {
$( "#depart_date" ).datepicker( "option", "to_date", selectedDate );
}
});
});
});
</script>
然后格式化它:
var FromDateValue = $('#depart_date').val();
var ToDateValue = $('#return_date').val();
var FromDateValue = Date.parse(FromDateValue)
var ToDateValue = Date.parse(ToDateValue)
moment.locale('en-gb');
var a = moment(ToDateValue, "dd-mm-yyyy");
var b = moment(FromDateValue, "dd-mm-yyyy");
var days = a.diff(b, 'days') +1 // =1
alert(ToDateValue)
这是我收到错误格式化日期的地方。有人可以帮忙吗?
答案 0 :(得分:1)
我认为问题在于您使用片刻解析ToDateValue
和FromDateValue
的方式。
请注意,令牌区分大小写,dd
代表星期几,mm
代表分钟(0..59
)且没有小写yyyy
。您必须使用大写DD
表示月份(1..31
),大写MM
表示月份编号(1..12
),大写YYYY
表示4位数年份。
请参阅moment(String, String)
文档。您的代码可能如下所示:
moment.locale('en-gb');
var a = moment(ToDateValue, "DD-MM-YYYY");
var b = moment(FromDateValue, "DD-MM-YYYY");
var days = a.diff(b, 'days') +1 // =1
alert(ToDateValue)