javascript - 在javascript中从dd-MMM-yyyy到dd-MM-yyyy的日期格式转换

标签 javascript jquery date-format

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

<asp:TextBox ID="tbStartDate" runat="server" CssClass="textbox" Width="80px" contentEditable="false" onchange="javascript:compareDates();"></asp:TextBox>

<asp:ImageButton runat="Server" ID="ibStartCalendar" ImageUrl="~/Images/calendar.jpg"
 Height="18px" AlternateText="Click to show calendar" />

<act:CalendarExtender ID="ceStartDate"  runat="server" Format="dd-MMM-yyyy" TargetControlID="tbStartDate" PopupButtonID="ibStartCalendar" CssClass="Calendar">
</act:CalendarExtender>

和javascript函数:

function compareDates() {
  var start = $("#<%=tbStartDate.ClientID %>").val();
  var end = $("#<%=tbEndDate.ClientID %>").val();

  if (!compareDate(start, end)) { 
$("#<%=lblMsg.ClientID %>").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 中更改格式?

最佳答案

这是解决方案,
我制作了自定义日期转换函数 GetDate 以将 dd-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; }
}

关于javascript - 在javascript中从dd-MMM-yyyy到dd-MM-yyyy的日期格式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23532270/

相关文章:

c# - 如何将 MM-dd-yyyy 的字符串转换为(整月)-yyyy

javascript - 如何限制日期选择器中的年份范围?

javascript - 使用 React Native 创建平面图

javascript - 在类而不是 id 中加载 map

javascript - 无法使用 jquery 重定向到页面

javascript - JQuery - 有条件地迭代元素以 addClass()

javascript - 如何在 JavaScript 中设置文本区域值

javascript - react-apollo gql, TypeError : Object(. ..) 不是函数

jquery - 如何要求用户的下拉值不是 "Please Select"?

2 毫秒精度的 Java DateFormat