检查日期是不是在过去 Javascript

     2023-05-08     154

关键词:

【中文标题】检查日期是不是在过去 Javascript【英文标题】:Check if date is in the past Javascript检查日期是否在过去 Javascript 【发布时间】:2012-01-08 11:13:49 【问题描述】:

所有, 我正在为日期选择器使用 jQuery UI。尽管用户输入的日期是过去的,但我正在尝试使用 javascript 检查。这是我的表单代码:

<input type="text" id="datepicker" name="event_date" class="datepicker">

那么我将如何使用 Javascript 进行检查以确保它不是过去的日期?谢谢

【问题讨论】:

【参考方案1】:

$('#datepicker').datepicker().change(evt => 
  var selectedDate = $('#datepicker').datepicker('getDate');
  var now = new Date();
  now.setHours(0,0,0,0);
  if (selectedDate < now) 
    console.log("Selected date is in the past");
   else 
    console.log("Selected date is NOT in the past");
  
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<input type="text" id="datepicker" name="event_date" class="datepicker">

【讨论】:

单线:if ($('#datepicker').datepicker('getDate') &lt; new Date) ... 。使用 new 关键字调用函数时可以省略括号。 您可以跳过now 变量。通过使用(selectedDate.getTime() &lt; Date.now()) @MiguelTrias:当然。这让读者更清楚一点。 如果你只看日期(没有时间),那么你应该像这样var now = ( new Date() ).setHours(0,0,0,0); @IvanYurchenko:.val() 返回一个字符串,即&lt;input&gt; 中的内容。 .datepicker('getDate') 返回一个 Date 对象。【参考方案2】:
var datep = $('#datepicker').val();

if(Date.parse(datep)-Date.parse(new Date())<0)

   // do something

【讨论】:

【参考方案3】:

为了使答案更易于重用,而不仅仅是日期选择器更改功能,您可以创建一个原型来为您处理。

// safety check to see if the prototype name is already defined
Function.prototype.method = function (name, func) 
    if (!this.prototype[name]) 
        this.prototype[name] = func;
        return this;
    
;
Date.method('inPast', function () 
    return this < new Date($.now());// the $.now() requires jQuery
);

// including this prototype as using in example
Date.method('addDays', function (days) 
    var date = new Date(this);
    date.setDate(date.getDate() + (days));    
    return date;
);

如果你不喜欢安全检查,你可以使用传统的方式来定义原型:

Date.prototype.inPast = function()
    return this < new Date($.now());// the $.now() requires jQuery

示例用法

var dt = new Date($.now());
var yesterday = dt.addDays(-1);
var tomorrow = dt.addDays(1);
console.log('Yesterday: ' + yesterday.inPast());
console.log('Tomorrow: ' + tomorrow.inPast());

【讨论】:

【参考方案4】:

只需将日期转换为毫秒并减去

let givenDate1 =   new Date("10/21/2001")  // Past Date
let givenDate2 =   new Date("10/21/2050") // future Date

如果 diff 为 ,则给定日期为 PAST

 let diff = new Date().getTime() - givenDate1.getTime();
  if (diff > 0) 
     console.log('Given Date givenDate1 is in Past');
   

如果差异是,那么给定日期是未来

 let diff = new Date().getTime() - givenDate2.getTime();
  if (diff < 0) 
     console.log('Given Date givenDate2 is in Future');
   

【讨论】:

你真的需要 new Date($.now()) 吗?和 new Date() 不一样吗? @AlexandruEftimie,是的,你是对的,两者都是一样的。不需要做 new Date($.now())【参考方案5】:
function isPrevDate() 
    alert("startDate is " + Startdate);
    if(Startdate.length != 0 && Startdate !='') 
        var start_date = Startdate.split('-');
        alert("Input date: "+ start_date);
        start_date=start_date[1]+"/"+start_date[2]+"/"+start_date[0];
        alert("start date arrray format " + start_date);
        var a = new Date(start_date);
        //alert("The date is a" +a);
        var today = new Date();
        var day = today.getDate();
        var mon = today.getMonth()+1;
        var year = today.getFullYear();
        today = (mon+"/"+day+"/"+year);
        //alert(today);
        var today = new Date(today);
        alert("Today: "+today.getTime());
        alert("a : "+a.getTime());
        if(today.getTime() > a.getTime() )
        
            alert("Please select Start date in range");
            return false;
         else 
            return true;
        
    

【讨论】:

var Startdate 从何而来?

检查来自 db 的日期是不是从当前日期过去两周

】检查来自db的日期是不是从当前日期过去两周【英文标题】:Checkifdatefromdbpassedtwoweeksfromthecurrentdate检查来自db的日期是否从当前日期过去两周【发布时间】:2014-10-2220:05:31【问题描述】:所以我有两个日期:$data_db=2014-08-24;$cure... 查看详情

Javascript / jQuery:如何检查日期是不是是一个月的最后一天

】Javascript/jQuery:如何检查日期是不是是一个月的最后一天【英文标题】:Javascript/jQuery:HowtocheckifdateislastdayofmonthJavascript/jQuery:如何检查日期是否是一个月的最后一天【发布时间】:2015-08-1601:18:07【问题描述】:我有以下代码(... 查看详情

IAP 如何检查用户是不是已经试用(过去的任何时间)?

】IAP如何检查用户是不是已经试用(过去的任何时间)?【英文标题】:IAPHowtocheckifuserhasalreadytrialled(atanytimeinthepast)?IAP如何检查用户是否已经试用(过去的任何时间)?【发布时间】:2017-06-2017:05:09【问题描述】:我正在我的iO... 查看详情

检查日期选择器是不是打开

】检查日期选择器是不是打开【英文标题】:Checkifdatepickerisopen检查日期选择器是否打开【发布时间】:2011-02-1607:37:57【问题描述】:我有一个带有日期选择器的字段。我想知道它是否开放。我试过了:$("#filter_date").datepicker("widg... 查看详情

sql在示例上显示布尔表达式。检查日期是否过去(代码片段)

查看详情

如何使用jquery检查日期不能小于当前日期?

...,我希望用户不能选择小于当前日期的日期。我是jquery/javascript的新手。请帮我。【问题讨论】:【参考方案1】:如果您的意思是要禁用过去的日期,那么:$("# 查看详情

检查日期是不是在 sql 中的日期范围之间(不检查年份)

】检查日期是不是在sql中的日期范围之间(不检查年份)【英文标题】:checkifdatesarebetweendaterangeinsql(checkwithoutyear)检查日期是否在sql中的日期范围之间(不检查年份)【发布时间】:2012-05-1505:35:29【问题描述】:我正在开发一个... 查看详情

在javascript中检查给定的日期格式

】在javascript中检查给定的日期格式【英文标题】:Checkgivendateformatinjavascript【发布时间】:2020-05-1813:25:41【问题描述】:您好,我在验证和确认给定日期的日期格式时遇到问题。管理员为输入​​输入有效的日期格式,用户在输... 查看详情

创建 Cloudwatch 指标和警报时遇到问题 - 检查是不是在过去 24 小时内记录了语句

】创建Cloudwatch指标和警报时遇到问题-检查是不是在过去24小时内记录了语句【英文标题】:TroubletocreateCloudwatchMetric&Alarm-Checkifstatementwasloggedinlast24Hours创建Cloudwatch指标和警报时遇到问题-检查是否在过去24小时内记录了语句【... 查看详情

在 JavaScript 中计算/检查出生日期小于 110 岁

】在JavaScript中计算/检查出生日期小于110岁【英文标题】:calculate/checkdateofbirthislessthan110yearsoldinJavaScript【发布时间】:2014-11-2514:08:33【问题描述】:我有一个这样的日期数组:vardateArray=["1965-12-29","1902-11-04","1933-10-21","1983-10-16"];... 查看详情

MySQL 检查日期范围是不是在日期范围内

】MySQL检查日期范围是不是在日期范围内【英文标题】:MySQLCheckifdaterangeisindaterangeMySQL检查日期范围是否在日期范围内【发布时间】:2015-04-1909:20:17【问题描述】:在为小型预订系统进行SQL查询时遇到问题,我有一个包含两个条... 查看详情

Java:检查当前日期是不是在特定日期范围内[重复]

】Java:检查当前日期是不是在特定日期范围内[重复]【英文标题】:Java:Checkifcurrentdateisinrangeofspecificdays[duplicate]Java:检查当前日期是否在特定日期范围内[重复]【发布时间】:2016-02-1512:35:53【问题描述】:我正在努力解决以下问... 查看详情

在 Javascript 中使用夏令时检查日期范围

】在Javascript中使用夏令时检查日期范围【英文标题】:CheckDateRangewithaplacethatusesDaylightSavingsinJavascript【发布时间】:2021-02-2423:57:35【问题描述】:Javascript中有没有办法检查具有给定经度/纬度和城市的位置是否使用夏令时?我目... 查看详情

检查当前日期是不是在两个日期之间 Oracle SQL

】检查当前日期是不是在两个日期之间OracleSQL【英文标题】:CheckifcurrentdateisbetweentwodatesOracleSQL检查当前日期是否在两个日期之间OracleSQL【发布时间】:2014-06-1709:30:31【问题描述】:如果当前日期在OracleSQL的两个日期之间,我想... 查看详情

使用javascript验证用户输入日期是不是在给定的日期范围内

】使用javascript验证用户输入日期是不是在给定的日期范围内【英文标题】:Validateuserinputdatesareingivendaterangeusingjavascript使用javascript验证用户输入日期是否在给定的日期范围内【发布时间】:2013-05-0418:53:34【问题描述】:我是php... 查看详情

检查日期在 Typescript 中是不是有效?

】检查日期在Typescript中是不是有效?【英文标题】:CheckingwhetheraDateisvalidinTypescript?检查日期在Typescript中是否有效?【发布时间】:2020-01-2416:36:21【问题描述】:ThesearethecommonlyacceptedwaysofdoingitinJavascript.然而使用Typescript是我们做... 查看详情

SQL 检查一组日期是不是在指定的日期范围内

】SQL检查一组日期是不是在指定的日期范围内【英文标题】:SQLTocheckifasetofdatesfallwithinaspecifiedrangeofdatesSQL检查一组日期是否在指定的日期范围内【发布时间】:2011-02-1709:29:40【问题描述】:我有一个表格,其中包含架构中房间... 查看详情

Android使用时区检查打开和关闭时间之间是不是已经过去

】Android使用时区检查打开和关闭时间之间是不是已经过去【英文标题】:AndroidcheckifbetweenopenandclosingtimehaselapsedusingtimezoneAndroid使用时区检查打开和关闭时间之间是否已经过去【发布时间】:2021-10-2815:30:06【问题描述】:如何在an... 查看详情