繁体   English   中英

使用JavaScript在同一ASPxDateEdit控件中获得两个不同日期的天数差异

[英]Get difference in days of two different dates in same ASPxDateEdit Control with javascript

我有一个使用此代码的ASPxDateEdit控件:

<dx:ASPxDateEdit ID="dtPayDate" ClientInstanceName="dateEdit" EditFormatString="yyyy-MM-dd" DisplayFormatString="yyyy-MM-dd" runat="server" EnableClientSideAPI="true" CssClass="form-control">
<ClientSideEvents Init="FirstDate()" LostFocus="ChangeDate()" />

还有两个事件:

var InititalPay;
var FinalPay;

function FirstDate(s, e) {
    var date = s.GetDate();
    var dd = date.getDate();
    var mm = date.getMonth();
    var yy = date.getFullYear();
    InitialPay = new Date(yy + ',' + mm + ',' + dd);
}

function ChangeDate() {
    var jsDate = dateEdit.GetDate();
    var year = jsDate.getFullYear(); // where getFullYear returns the year (four digits)
    var month = jsDate.getMonth(); // where getMonth returns the month (from 0-11)
    var day = jsDate.getDate(); // where getDate returns the day of the month (from 1-31)
    FinalPay = new Date(year + ',' + month + ',' + day);

    var a = moment([FinalPay]);
    var b = moment([InitialPay]);
    days = a.diff(b, 'days') // diferencia en dias
    alert(days)
}

我需要获取更改之前的日期并将其存储在var中。 接下来获取更改的日期并将其存储到其他变量中。 得到两个日期的差。 我也正在使用moment.js但是如果存在其他方法,我可以使用它。

您需要使用GotFocus事件而不是Init

<dx:ASPxDateEdit ID="dtPayDate" ClientInstanceName="dateEdit" EditFormatString="yyyy-MM-dd" DisplayFormatString="yyyy-MM-dd" runat="server" EnableClientSideAPI="true" CssClass="form-control">
    <ClientSideEvents GotFocus="FirstDate" LostFocus="ChangeDate"/>
</dx:ASPxDateEdit>

您也可以使用简单的阿米巴酸法找到两个日期之间的差异。
这是示例:

var InitialDate;
var FinalDate;

function FirstDate(s, e) {
    InitialDate = s.GetDate();
}

function ChangeDate(s, e) {
    FinalDate = s.GetDate();

    if (!!InitialDate && !!FinalDate)
    {
        days = (FinalDate - InitialDate) / (1000 * 60 * 60 * 24);
        alert(days);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM