0

日付形式に関する他のすべてのトピックは、日付が整数として入力されることを前提としています。

月を文字列(1月、2月、3月など)にする必要があり、日付を検証する必要があるスクリプト(Linux)を作成しています。

月を抽出し、月番号を決定してから比較を行う不格好なルーチンを作成しましたが、これを行うためのより良いものがあるのではないかと期待していました。'format'メソッドの使用について何か見たことがあると思いましたが、今は見つかりません...

私はこれを試しましたが、惨めに失敗します:

var checkDate1 = document.getElementById('fromDate').value;
var checkDate2 = document.getElementById('toDate').value;

tmpDate1 = new Date(checkDate1);
tmpDate2 = new Date(checkDate2);

if (tmpDate1 < tmpDate2) {

たとえば、一般的なフィールドエントリは「2012年5月12日」です。

注:システムに派手で気まぐれなライブラリを追加するためのアクセス権がないので、バニラのものを使用する必要があります。

4

1 に答える 1

0

JavaScript では、コンストラクターで解析される文字列 Date は次の形式である必要があります: D, d MYH:i:s

2012 年 5 月 29 日(火)15:22:59 になります。

文字列にとどまりたい場合は、値を解析し、2012 年 5 月 29 日が何日になるかを調べるための凝った関数を作成する必要があります。

別の方法(そしてより簡単) は、新しい Date を作成し、値を解析して、他のコンストラクターの on を使用することです

var today = '05-29-2012',
    aToday = today.split('-'),
    dToday = new Date(aToday[2], aToday[0], aToday[1], 0, 0, 0, 0),

    tomorrow = '05-30-2012',
    aTomorrow = tomorrow.split('-'),
    dTomorrow = new Date(aTomorrow[2], aTomorrow[0], aTomorrow[1], 0, 0, 0, 0);

if (dTomorrow.getTime() > dToday.getTime() ) {
    console.log('Tomorrow is tomorrow'); 
} else {
    console.log('Tomorrow is not tomorrow');
}
于 2012-05-29T15:18:31.287 に答える