JavaScript引用タイプ——「Dateタイプ」の注意点

4636 ワード

Dateタイプ
ECMAScriptのDateタイプは、UTC(Coordinated Universal Time、国際協調時間)から1970年1月1日午前0時からのミリ秒数で日付を保存します.Date型保存の日付は1970年1月1日以前またはその後の18616年まで正確にすることができます.
基本的な3つの方法Date.parse()Date.UTC()Date.now()3つの方法.
まず、Date.parse()方法は、日付を表す文字列パラメータを受信し、この文字列から該当日のミリ秒数を返してみます.通常は地域を米国のブラウザに設定し、以下の日付書式を適用します.
  • 「月/日/年」、例えば6/13/2004;
  • 「英語月名日、年」Januar 12,2004;
  • 「英文月名日時:分:秒タイムゾーン」、例えばTue May 25 2004:00 GMT-700.
  • ISO 8601拡張フォーマットYYY-M-DDTHH:mm:ss.sss Zは、2004-05-25 T 00:00のようです.このフォーマットはECMAScript 5対応のみ可能です.
  • 例えば、2004年5月25日に日付オブジェクトを作成するには、下記のコードが使えます.
    var date = new Date(Date.parse("May 25 2004"));
    console.log(date); //Tue May 25 2004 00:00:00 GMT+0800 (HKT)
    
    省略Date.parse()例えば:
    var date = new Date("May 25 2004");
    console.log(date); //Tue May 25 2004 00:00:00 GMT+0800 (HKT)
    
    var date = new Date("11/16/2015");
    console.log(date); //Mon Nov 16 2015 00:00:00 GMT+0800 (HKT)
    
    var date = new Date("November 16, 2015");
    console.log(date); //Mon Nov 16 2015 00:00:00 GMT+0800 (HKT)
    
    次に、Date.UTC()方法も同様に日付を示すミリ秒数を返します.この方法のパラメータはそれぞれ年、0に基づく月、月のどの日、24時間制の時間数、分、秒、ミリ秒数です.月の日数が提供されていない場合、デフォルトは1です.他のパラメータを省略すると、デフォルトは0です.
    var date = new Date(Date.UTC(2015, 10, 16));
    document.write(date); //Mon Nov 16 2015 08:00:00 GMT+0800 (CST)
    
    略語することもできます.
    var date = new Date(2015, 10, 16, 10,10,10);
    console.log(date);//Mon Nov 16 2015 10:10:10 GMT+0800 (CST)
    
    最後に、Date.now()方法は、この方法を呼び出した時の日付と時間を示すミリ秒数を返します.例えば:
    var date = new Date(Date.now());
    console.log(date); //Mon Nov 16 2015 10:48:02 GMT+0800 (CST)
    
    この方法でコードの作業を追跡できます.
    var start = new Date(Date.now());
    for (var i = 0; i < 100; i++){
        for (var j = 0; j < 100; j++){
            document.write("result is: " + (i + j) + "
    "); } } var stop = new Date(Date.now()); document.write("
    "); document.write((stop - start) + "
    " + start + "
    " + stop);
    継承の方法
    Dateタイプは書き換えました.toLocaleString()toString()valueOf()方法.toLocaleString()方法は、ブラウザが設定した地域に応じたフォーマットで日付と時間を返します.toString()方法は、通常、タイムゾーン情報を伴う日付と時間を返す.(toLocaleString()およびtoString()ブラウザによって出力が異なる):
    var date = new Date(Date.now());
    document.write(date.toLocaleString()); 
    document.write(date.toString()); 
    document.write(date.valueOf());
    //2015 11 16  GMT+8  11:10:09
    //Mon Nov 16 2015 11:10:09 GMT+0800 (CST)
    //1447643409908
    
    valueOf()方法は、オペレータと比較して日付値を比較することができる.
    var start = new Date(Date.parse("May 24,2015"));
    var stop = new Date(Date.parse("Nov 16,2015"));
    document.write(stop.valueOf() > start.valueOf()); //true
    
    日付の書式設定方法
    Dateタイプには、日付を文字列に書式設定するための方法があります.これらの方法は以下の通りです.
  • toDateString()(月、日、年)
  • toTimeString()(時、分、秒、タイムゾーン)
  • toLocaleDateString()(月、日、年)
  • toLocaleTimeString()(時、分、秒)
  • toUTCString()(UTC日付)
  • toGMTString()(不推奨)
  • 例を挙げます
    var date = new Date(Date.now());
    document.write(date.toDateString()); //Mon Nov 16 2015
    document.write(date.toTimeString()); //11:32:25 GMT+0800 (CST)
    document.write(date.toLocaleDateString()); //2015 11 16 
    document.write(date.toLocaleTimeString()); //GMT+8  11:33:16
    document.write(date.toUTCString()); //Mon, 16 Nov 2015 03:33:37 GMT
    document.write(date.toGMTString()); //Mon, 16 Nov 2015 03:33:52 GMT
    
    日付と時間のコンポーネント方法
    以下の方法は、日付値の特定部分を直接取得して設定する方法です.また、UTC日付とは、タイムゾーンのずれがない場合(日付をGMT時間に変換する)の日付値を意味する.
    完全なデータはw 3 school-Dateオブジェクトの方法を見ます.
    例を挙げてください.現在の時間を秒間隔で更新して表示します.
    var newP = document.createElement("p");
        var newP_text = document.createTextNode("");
        document.body.appendChild(newP);
        newP.appendChild(newP_text);
        setInterval(function(){
        var time = new Date(Date.now());
        var hours = time.getHours();
        var minutes = time.getMinutes();
        var seconds = time.getSeconds();
        if (seconds < 10){
            seconds = "0" + seconds;
        }
        if (hours < 10){
            hours = "0" + hours;
        }
        if (minutes < 10){
            minutes = "0" + minutes;
        }
        var current = "     :" + hours + " " + minutes + " " + seconds + " ";
        newP.firstChild.nodeValue = current;
        }, 1000)
        
        //     :12 06 53