如何格式化JavaScript日期对象



我有2个日期字段,我想比较它们的值。问题在于,我需要以DD/mm/yyyy格式和JS日期对象为DD/mm/yyyy。如何更改日期对象格式以接收DD/mm/yyyy并将它们与此格式进行比较?

这是我到目前为止尝试的...

$('#date_customFrom').datepicker({
format: "dd/mm/yyyy"
  });
$('#date_customTo').datepicker({
format: "dd/mm/yyyy"
  });
$('.submit').on('click', function() {
 var start_date = $("input[name='date_customFrom']").val().split("/");
 var end_date = $("input[name='date_customTo']").val().split("/");
 var new_date_start = new Date(start_date[2], start_date[1] - 1, 
 start_date[0]);
 var new_date_end = new Date(end_date[2], end_date[1] - 1, end_date[0]);
 console.log(new_date_start);
 console.log(new_date_end);
});

小提琴

 var dd = new_date_start.getDate();
    var mm = new_date_start.getMonth() + 1;//January is 0! 
    var yyyy = new_date_start.getFullYear();
    if (dd < 10) { dd = '0' + dd }
    if (mm < 10) { mm = '0' + mm }
     var res_START= dd + '/' + mm + '/' + yyyy;
 console.log(res_START);

尝试此

您需要使用Moment.js

这里是doc

var momDt = moment('10.12.2016', 'DD/MM/YYYY');

您可以将日期对象与基本关系运算符进行比较。

使用 +parseInt;

确保将字符串分开后转换为数字
+(start_date[2]) 
Number(start_date[2])
parseInt(start_date[2], 10)

或映射号码构造函数

var start_date = $("input[name='date_customFrom']").val().split("/").map(Number);
new Date(start_date[2], start_date[1] - 1,  start_date[0]);

使用<<=>>=立即比较。

var start, end;
start = new Date(2016, 11, 5);
end = new Date(2016, 11, 4);
console.log(start, end, start < end)
start = new Date(2016, 11, 3);
end = new Date(2016, 11, 4);
console.log(start, end, start < end)

所有的拳头,您无需施放日期... datepicker已经可以给您日期:

var start_date = $("#date_customFrom").datepicker('getDate');
var end_date = $("#date_customTo").datepicker('getDate');

第二,日期的正确格式是日期选择器为

$('#date_customFrom').datepicker({
     dateFormat: "dd/mm/yyyy"
});

检查整个格式列表

http://api.jqueryui.com/datepicker/#utility-formatdate

第三,比较只是使用关系比较

if (start_date > end_date) {
}

您可以创建格式函数:

function formatDate(date, search, replacement)
{
    var target = date.toISOString().slice(0, 10);
    return target.split(search).join(replacement);
}

并使用它:

formatDate(new_date_start, "-", "/")

这是您更新的小提琴

,但我同意asdf_enel_hak的评论,即moment.js对您来说是更好的解决方案。

更新

我刚刚意识到以上不会考虑您的时区,因此这是一个更新的功能:

function formatDate(date, search, replacement)
{
    var target = new Date(date);
    target.setMinutes(date.getMinutes() - date.getTimezoneOffset());
    target = target.toJSON().slice(0, 10);
    return target.split(search).join(replacement);
}

和新小提琴

相关内容

  • 没有找到相关文章

最新更新