105

datea - 形式の文字列dd/mm/yyyy- が同じ形式を持つ他の2つの日付の間にあるかどうかを確認する必要がありますdd/mm/yyyy

私はこれを試しましたが、うまくいきません:

var dateFrom = "02/05/2013";
var dateTo = "02/09/2013";
var dateCheck = "02/07/2013";

var from = Date.parse(dateFrom);
var to   = Date.parse(dateTo);
var check = Date.parse(dateCheck );

if((check <= to && check >= from))      
    alert("date contained");

デバッガーを使用してチェックしたところ、変数tofrom変数にisNaN値があります。私たちを手伝ってくれますか?

4

11 に答える 11

67

日付を直接比較する代わりに、日付の getTime() 値を比較します。getTime() 関数は、1970 年 1 月 1 日からのミリ秒数を整数として返します。1 つの整数が他の 2 つの整数の間にあるかどうかを判断するのは簡単です。

何かのようなもの

if((check.getTime() <= to.getTime() && check.getTime() >= from.getTime()))      alert("date contained");
于 2013-04-18T10:26:04.100 に答える
4

受け入れられた回答に基づいてこれを行う簡単な方法。

私の場合、現在の日付 (今日) が他の 2 つの日付の範囲に含まれているかどうかを確認する必要があったため、ハードコードされた値の代わりに newDate() を使用しましたが、ハードコードされた日付を使用する方法を理解できます。


var currentDate = new Date().toJSON().slice(0,10);
var from = new Date('2020/01/01');
var to   = new Date('2020/01/31');
var check = new Date(currentDate);

console.log(check > from && check < to);

于 2019-12-24T13:59:04.613 に答える
3

特定の日付が2つの日付の間にあるかどうかを検証するためのカスタマイズ機能を作成しました。

var getvalidDate = function(d){ return new Date(d) }

function validateDateBetweenTwoDates(fromDate,toDate,givenDate){
    return getvalidDate(givenDate) <= getvalidDate(toDate) && getvalidDate(givenDate) >= getvalidDate(fromDate);
}
于 2019-08-11T19:15:42.040 に答える
0

TypeScript で記述された Date Prototype メソッドを次に示します。

Date.prototype.isBetween = isBetween;
interface Date { isBetween: typeof isBetween }
function isBetween(minDate: Date, maxDate: Date): boolean {
  if (!this.getTime) throw new Error('isBetween() was called on a non Date object');
  return !minDate ? true : this.getTime() >= minDate.getTime()
    && !maxDate ? true : this.getTime() <= maxDate.getTime();
};
于 2018-09-26T01:07:10.057 に答える
-1

これを試して

var gdate='01-05-2014';
        date =Date.parse(gdate.split('-')[1]+'-'+gdate.split('-')[0]+'-'+gdate.split('-')[2]);
        if(parseInt(date) < parseInt(Date.now()))
        {
            alert('small');
        }else{
            alert('big');
        }

フィドル

于 2014-05-09T11:54:31.203 に答える