如何验证用户输入是当前的日期和时间?

时间:2016-05-25 03:54:05

标签: javascript html datetime extjs ext.net

在html中我使用ext.net datefield

 <ext:DateField runat="server"  ID = "date"  Format="Y-m-d hh:mm:ss" SubmitFormat="Y-m-d H:i:s"  MarginSpec="0 0 0 60" FieldLabel="Gate In Date/Time" AllowBlank="false" IndicatorText="*" IndicatorCls="red-text"/>

当它查看它显示正确的日期但时间总是12:00:00。在javascript中 我是这样做的

var iframeID = $('iframe').attr('id');

var myDate = lazyMethod_get(iframeID, "formdetail", "date")
var today = new Date().toISOString().slice(0, 10);


alert(myDate);
alert(today);

if (myDate > today) {
    alert("Entered date is greater than today's date ");
}
else {
    alert("Entered date is less than today's date ");
}}

验证始终提醒输入的日期少于今天的日期。我只是想验证日期和时间,如果用户插入例如2016-02-03日期错误并获得当前日期。

谢谢。

3 个答案:

答案 0 :(得分:1)

以微秒为单位的时间。

if (!Date.now) {
  Date.now = function now() {
    return new Date().getTime();
  };
}

进行计算后进行格式化。

你的lazyMethod_get()工作是什么。它是返回一个字符串,还是一个Date对象。

答案 1 :(得分:0)

当你这样做时:

new Date().toISOString().slice(0, 10);

toISOString生成UTC日期(即时区偏移为00:00),因此它可能与主机系统的日期不同。

E.g。对于时区+10:00的用户,当它是5月25日的09:30时,上面将返回5月24日的日期字符串。同样,对于偏移量在格林威治以西的系统,日期将在一天之后的晚上时间(例如,5月25日20:30在时区-04:00将是5月26日00:30 00:30)。 / p>

答案 2 :(得分:0)

首先 - Ext.NET DateField只返回一个日期(MM-dd-yyyy)而不是时间。时间总是默认为12:00:00。

我会比较每个的年,日和月。

的javascript:

    var isToday = function (field) {
        var fieldDate = field.getValue();
        var today = new Date()


        if ((today.getFullYear() + today.getMonth() + today.getDate())
            == (fieldDate.getFullYear() + fieldDate.getMonth() + fieldDate.getDate())) {
            return true;
        }
        else {
            return false;
        }
    }

标记:

    <ext:DateField ID="DateField1" runat="server">
        <Listeners>
            <Select Handler="alert( isToday(#{DateField1}) )" />
        </Listeners>
    </ext:DateField>