5

日付を DD/MM/YYYY から YYYY-MM-DD に変換する関数があります。

これは、IE8 以外のすべてのブラウザーで機能します。何らかの理由で、新しい Date オブジェクトを作成すると、NaN が返されます。

コードの基本的な実装 http://jsfiddle.net/bX83c/1/

var compareDate = function(value){
    var dateFragements = value.split('/');
    if (dateFragements.length == 3) {
        var currentDate = new Date();
            currentDate.setHours(0, 0, 0, 0);

        var startDate = new Date(dateFragements[2] + '-' + dateFragements[1] + '-' + dateFragements[0]);

        if (startDate >= currentDate) {
            return true;
        } else {
            return false;
        }
    }   
}
alert(compareDate('17/09/2013'));
4

3 に答える 3

3

このように日付を初期化します。すべてのブラウザで動作します

var startDate = new Date(dateFragements[2] , dateFragements[1] , dateFragements[0]);

Dateコンストラクターを使用してオブジェクトを初期化する方法は 4 つあります。

new Date() // current date and time
new Date(milliseconds) //milliseconds since 1970/01/01
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)

Date オブジェクトの文字列は、すべての日付文字列を受け入れるという意味ではありません。入力として文字列を与えたい場合は、これを与えます。(dateFragements[2] +'/' + dateFragements[1] + '/' + dateFragements[0]);. (/セパレータとして) すべてのブラウザでサポートされます

于 2013-09-05T09:22:08.263 に答える