在javascript中将日期格式从dd-MMM-yyyy转换为dd-MM-yyyy

我想在jquery中比较开始日期和结束日期。 aspx页面中的代码如下所示:

    

和javascriptfunction:

 function compareDates() { var start = $("#").val(); var end = $("#").val(); if (!compareDate(start, end)) { $("#").html("Start Date can not be greater than End Date"); } } function compareDate(start, end) { if (start.length > 0 && end.length > 0) { var stDate = new Date(start); var enDate = new Date(end); var compDate = enDate - stDate; if (compDate >= 0) return true; else { return false; } } else { return true; } } 

要求是在文本框中以“dd-MMM-yyyy”格式显示日期,以便我无法在calenderExtender中更改格式。

当我保持这种格式时,星号日期和结束日期变为“NaN”。 如果我在calenderExtender中更改格式,我会得到正确的结果。 但正如我所说,我不能改变那里的格式。 如何在javascript中更改格式?

这是解决方案,
我已经使自定义日期转换函数GetDatedd-MMM-yyyy格式字符串转换为javascript Date对象。

 function GetDate(str) { var arr = str.split("-"); var months = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"]; var month = months.indexOf(arr[1].toLowerCase()); return new Date(parseInt(arr[2]), month, parseInt(arr[0])); } function compareDate(start, end) { if (start.length > 0 && end.length > 0) { var stDate = GetDate(start); var enDate = GetDate(end); var compDate = enDate - stDate; if (compDate >= 0) return true; else { return false; } } else { return true; } } 

您可以使用jquery日期格式插件非常有效地格式化日期时间并根据需要进行自定义。

或者,您也可以使用jqueryUI来格式化日期。

$.datepicker.parseDate( format, value, settings )

这是答案……

  function GetDate(str) { debugger; var arr = str.split('-'); var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun','Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] var i = 1; for (i; i <= months.length; i++) { if (months[i] == arr[1]) { break; } } var formatddate = i + '/' + arr[0] + '/' + arr[2]; return formatddate; } function StartDateTimeEndDate() { var startDate = document.getElementById('<%=EFF_START_DATEDVTextBox.ClientID %>').value var endDate = document.getElementById('<%=EFF_END_DATEDVTextBox.ClientID %>').value var startdt = GetDate(startDate) var enddt = GetDate(endDate) if ((Date.parse(enddt) <= Date.parse(startdt))) { alert("End date should be greater than Start date"); document.getElementById('<%=EFF_END_DATEDVTextBox.ClientID %>').value = ""; } } 

卡皮尔,

改进你的function方法

  function GetDate(str) { var arr = str.split('-'); var month = ""; var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; var i = 0; for (i; i < months.length; i++) { if (months[i] == arr[1]) { break; } } i++; if (i >= 10) month = i; else month = "0" + i; var formatddate = arr[0] + '-' + month + '-' + arr[2]; return formatddate; 

}

这将以dd-mm-yyyy格式返回日期。