44

この関数を使用すると、7日間の差が生じます。日付が現在の日付より前であるかどうかをテストするにはどうすればよいですか?

function validateDate() {
    pickedDate = Date.parse("05-Jul-2012".replace(/-/g, " "));
    todaysDate = new Date();
    todaysDate.setHours(0, 0, 0, 0);
    dateDifference = Math.abs(Number(todaysDate) - pickedDate);
    //7 Days=604800000ms
    if (dateDifference > 604800000) {
        return false;
    } else {
        return true;
    }
}
4

8 に答える 8

62

両方の日付を直接比較できます

return pickedDate <= todaysDate

ミリ秒を考慮した正確な日付比較には、 getTime()メソッドを使用できます

あなたがしたようにあなたは日付を解析することができます:

pickedDatestr = "09-Apr-2010"
var pickedDate = new Date(Date.parse(pickedDatestr.replace(/-/g, " ")))
于 2012-07-05T12:31:44.940 に答える
25

日付比較(時間なし)の場合:

function isDateBeforeToday(date) {
    return new Date(date.toDateString()) < new Date(new Date().toDateString());
}

isDateBeforeToday(new Date(2016, 11, 16));

テストケース:

// yesterday
isDateBeforeToday(new Date(2018, 12, 20)); // => true

// today
isDateBeforeToday(new Date(2018, 12, 21)); // => false

// tomorrow
isDateBeforeToday(new Date(2018, 12, 22)); // => false
于 2016-11-30T14:08:16.400 に答える
5

バックエンドから取得したJava.util.Dateが今日の日付より後かどうかを確認しようとしていたため、この質問に行き着きました。

結局、私は本当に単純な解決策を見つけました-次のようにミリ秒を比較することによって:

  isAfterToday(date) {
    return new Date(date).valueOf() > new Date().valueOf();
  }

関数はここvalueOf()に文書化されています。

于 2020-02-13T20:19:47.563 に答える
2

この機能を試してください

function checkDate(day, month, year)
{
    var regd = new RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})\$");

    var date = month + "/" + day + "/" + year;
    var date = new Date(date);
    var today = new Date();

    var vdob = regd.test(date);

    var err_txt = "" ;

    if(date.getDate() != day || (date.getTime()>today.getTime()))
    {
            err_txt+=("Please select a valid Date.\n")
    }

    return (err_txt);
}
于 2012-07-05T12:34:10.903 に答える
1
new Date() > new Date('2022-01-24')

私の側では、私は時間について不注意です。

于 2022-01-18T00:39:44.697 に答える
0

以下は、日付が今日より前に発生するかどうかを確認します。

function isBeforeToday(){
  var today = new Date((new Date()).toString().substring(0,15));
  return date < today;
}

これは、対応する日付文字列からすべての時刻情報を取り除いた後、新しい日付オブジェクトを作成することで機能します。

Tue Mar 06 2018 16:33:15 GMT-0500 (EST)-> Tue Mar 06 2018->Tue Mar 06 2018 00:00:00 GMT-0500 (EST)

于 2018-03-06T21:37:26.853 に答える
0
if(this.dateString1.getFullYear() <= this.dateString2.getFullYear() )//check the year
  { 
    // console.log("date1+date2"+this.dateString1.getFullYear()+this.dateString2.getFullYear())
    if(this.dateString1.getMonth() <= this.dateString2.getMonth())//check the month
      {
        // console.log("date1+date2"+this.dateString1.getMonth()+this.dateString2.getMonth())
        if(this.dateString1.getDate() < this.dateString2.getDate())//check the date
        this.toastr.error("Project Start Date cannot be Previous Date");
          return;
      }
  }
于 2019-03-11T12:34:09.120 に答える
-1

'<、'>'などを使用して2つの日付を直接比較できます。

function validateDate(date) {
    //get start of day using moment.js
    const now = Moment().startOf('day').toDate();
    if (date < now) {
        return false; //date is before today's date
    } else {
        return true; //date is today or some day forward
}
于 2018-06-23T17:16:19.050 に答える