JavaScript Dateオブジェクトの紹介

9906 ワード

原文:
JavaScript Dateオブジェクトの紹介
Date日付と時刻オブジェクト
1.紹介
Dateオブジェクトは、操作日時のオブジェクトです.Dateオブジェクトの日付と時間に対する操作は、メソッドのみで実行できます.
2.コンストラクタ
2.1 new Date():現在のローカル日付と時刻を返します.
パラメータ:なし
戻り値:
{Date}は、ローカルの日付と時刻を表すDateオブジェクトを返します.
例:
var dt = new Date();

console.log(dt); // =>               Date  


 
2.2 new Date(milliseconds):ミリ秒数をDateオブジェクトに変換
パラメータ:
1 milliseconds{int}:ミリ秒数;'1970/01/01 00:00:00'を起点としてオーバーラップを開始するミリ秒数を表します.
注意:起点の时分秒に现在所在する时区を加え、北京时间の时区は东8区で、起点时间は実际には「1970/01/01 08:00」です.
戻り値:
{Date}は、オーバーラップしたDateオブジェクトを返します.
例:
var dt = new Date(1000 * 60 * 1); //   1      

console.log(dt); // => {Date}:1970/01/01 08:01:00

dt = new Date(-1000 * 60 * 1); //   1      

console.log(dt); // => {Date}:1970/01/01 07:59:00


 
2.3 new Date(dateStr):文字列をDateオブジェクトに変換する
パラメータ:
①dateStr{string}:Dateオブジェクトに変換可能な文字列(時間省略可能);文字列のフォーマットは主に2種類あります.
1)yyyy/MM/dd HH:mm:ss(推奨):時間を省略すると、返されるDateオブジェクトの時間は00:00:00となります.
2)yyyy-MM-dd HH:mm:ss:時間を省略すると、返されるDateオブジェクトの時間は08:00:00(ローカルタイムゾーンを加えた)となります.時間を省略しないと、この文字列はIEで変換に失敗します!
戻り値:
変換後のDateオブジェクトを返します.
例:
var dt = new Date('2014/12/25'); // yyyy/MM/dd

console.log(dt); // => {Date}:2014/12/25 00:00:00

dt = new Date('2014/12/25 12:00:00'); // yyyy/MM/dd HH:mm:ss

console.log(dt); // => {Date}:2014/12/25 12:00:00



dt = new Date('2014-12-25'); // yyyy-MM-dd

console.log(dt); // => {Date}:2014-12-25 08:00:00 (    8    )

dt = new Date('2014-12-25 12:00:00'); // yyyy-MM-dd HH:mm:ss (  :      IE    !)

console.log(dt); // => {Date}:2014-12-25 12:00:00 

 
2.4 new Date(year,month,opt_day,opt_hours,opt_minutes,opt_seconds,opt_milliseconds):年月日、時間分秒をDateオブジェクトに変換
パラメータ:
①year{int}:年;4桁の数字.例えば:1999、2014
②month{int}:月;2桁の数字.0から計算を開始し、0は1月、11は12月を表します.
③opt_day{int}オプション:番号;2桁の数字1から計算を開始し、1は1番を表します.
④opt_hours{int}オプション:時;2桁の数字0~23の値をとる.
⑤opt_minutes{int}オプション:分;2桁の数字0~59の値をとる.
⑥opt_seconds{int}オプション:秒;2数値なし0~59の値をとる.
⑦opt_milliseconds{int}オプション:ミリ秒;0~999の値をとる.
戻り値:
変換後のDateオブジェクトを返します.
例:
var dt = new Date(2014, 11); // 2014 12 (          11) 

console.log(dt); // => {Date}:2014/12/01 00:00:00

dt = new Date(2014, 11, 25); // 2014 12 25 

console.log(dt); // => {Date}:2014/12/25 00:00:00

dt = new Date(2014, 11, 25, 15, 30, 40); // 2014 12 25  15 30 40 

console.log(dt); // => {Date}:2014/12/25 15:30:40

dt = new Date(2014, 12, 25); // 2014 13 25 (          12,   13  ,       1 )

console.log(dt); // => {Date}:2015/01/25

 
3.属性
なしDateオブジェクトの日付と時間に対する操作は、メソッドのみで実行できます.
 
4.インスタンスメソッド
Dateオブジェクトのインスタンスメソッドは、主にローカル時間とUTC時間の2つの形式に分けられます.同じ方法では、一般的にこの2つの時間フォーマット操作(方法名はUTC付きで、UTC時間を操作)がありますが、ここでは主にローカル時間の操作について説明します.
 
4.1 getメソッド
4.1.1 getFullYear():Dateオブジェクトの年値を返します.4桁の年.
4.1.2 getMonth():Dateオブジェクトの月の値を返します.0から始まるので、実際の月=は+1を返します.
4.1.3 getDate():Dateオブジェクトの月の日付値を返します.値の範囲は1~31です.
4.1.4 getHours():Dateオブジェクトの時間値を返します.
4.1.5 getMinutes():Dateオブジェクトの分値を返します.
4.1.6 getSeconds():Dateオブジェクトの秒数を返します.
4.1.7 getMilliseconds():Dateオブジェクトのミリ秒値を返します.
4.1.8 getDay():Dateオブジェクトの週の曜日を返します.0は日曜日、1は月曜日、2は火曜日です.
4.1.9 gettime():Dateオブジェクトと'1970/01/01 00:00:00'の間のミリ秒値を返します(北京時間のタイムゾーンは東8ゾーンで、起点時間は実際には'1970/01/01 08:00').
例:
dt.getFullYear(); // => 2014: 

dt.getMonth(); // => 11: ;   12  (   0    )

dt.getDate(); // => 25: 

dt.getHours(); // => 15: 

dt.getMinutes(); // => 30: 

dt.getSeconds(); // => 40: 

dt.getMilliseconds(); // => 333:  

dt.getDay(); // => 4:     

dt.getTime(); // => 1419492640333 :  Date   '1970/01/01 00:00:00'      (         8 ,       :'1970/01/01 08:00:00') 

 
4.2 setメソッド
4.2.1 setFullYear(year,opt_month,opt_date):Dateオブジェクトの年値を設定します.4桁の年.
4.2.2 setMonth(month,opt_date):Dateオブジェクトの月の値を設定します.0は1月、11は12月を表します.
4.2.3 setDate(date):Dateオブジェクトの月の日付値を設定します.値の範囲は1~31です.
4.2.4 setHours(hour,opt_min,opt_sec,opt_msec):Dateオブジェクトの時間値を設定します.
4.2.5 setMinutes(min,opt_sec,opt_msec):Dateオブジェクトの分値を設定します.
4.2.6 setSeconds(sec,opt_msec):Dateオブジェクトの秒数を設定します.
4.2.7 setMilliseconds(msec):Dateオブジェクトのミリ秒値を設定します.
例:
var dt = new Date();

dt.setFullYear(2014); // => 2014: 

dt.setMonth(11); // => 11: ;   12  (   0    )

dt.setDate(25); // => 25: 

dt.setHours(15); // => 15: 

dt.setMinutes(30); // => 30: 

dt.setSeconds(40); // => 40: 

dt.setMilliseconds(333); // => 333:  

console.log(dt); // =>  2014 12 25  15 30 40  333  


 
4.3その他の方法
4.3.1 toString():Dateを'年月日分秒'文字列に変換
4.3.2 toLocaleString():Dateを「年月日分秒」のローカルフォーマット文字列に変換
4.3.3 toDateString():Dateを'年月日'文字列に変換
4.3.4 toLocaleDateString():Dateを「年月日」のローカルフォーマット文字列に変換
4.3.5 toTimeString():Dateを'時分秒'文字列に変換
4.3.6 toLocaleTimeString():Dateを「時間分秒」のローカルフォーマット文字列に変換
4.3.7 valueOf():gettime()と同様に、Dateオブジェクトと'1970/01/01 00:00:00'のミリ秒値を返します(北京時間のタイムゾーンは東8ゾーンで、起点時間は実際には'1970/01/08:00'です).
例:
var dt = new Date();

console.log(dt.toString()); // => Tue Dec 23 2014 22:56:11 GMT+0800 (      ) : Date     '       '   

console.log(dt.toLocaleString()); // => 2014 12 23    10:56:11  : Date     '       '        



console.log(dt.toDateString()); // => Tue Dec 23 2014 : Date     '   '   

console.log(dt.toLocaleDateString()); // => 2014 12 23  : Date     '   '        



console.log(dt.toTimeString()); // => 22:56:11 GMT+0800 (      ) : Date     '   '   

console.log(dt.toLocaleTimeString()); // =>   10:56:11 : Date     '   '        



console.log(dt.valueOf()); // =>   Date   '1970/01/01 00:00:00'      (         8 ,       :'1970/01/01 08:00:00') 


 
5.静的方法
5.1 Date.now()
説明:現在の日付と時刻を返すDateオブジェクトと'1970/01/01 00:00:00'のミリ秒値(北京時間のタイムゾーンは東8ゾーン、開始時刻は実際には'1970/01/01 08:00:00')
パラメータ:なし
戻り値:
{int}:現在の時間と開始時間の間のミリ秒数.
例:
console.log(Date.now()); // => 1419431519276 


  
5.2 Date.parse(dateStr)
説明:文字列をDateオブジェクトに変換し、このDateオブジェクトと'1970/01/01 00:00:00'のミリ秒値を返します(北京時間のタイムゾーンは東8ゾーンで、起点時間は実際には:'1970/01/08:00:00')
パラメータ:
①dateStr{string}:Dateオブジェクトに変換可能な文字列(時間省略可能);文字列のフォーマットは主に2種類あります.
1)yyyy/MM/dd HH:mm:ss(推奨):時間を省略すると、返されるDateオブジェクトの時間は00:00:00となります.
2)yyyy-MM-dd HH:mm:ss:時間を省略すると、返されるDateオブジェクトの時間は08:00:00(ローカルタイムゾーンを加えた)となります.時間を省略しなければ、この文字列はIEの中でNaN(数字ではありません)を返します!
戻り値:
変換後のDateオブジェクトと開始時間のミリ秒数を返します.
例:
console.log(Date.parse('2014/12/25 12:00:00')); // => 1419480000000 

console.log(Date.parse('2014-12-25 12:00:00')); // => 1419480000000  (  :      IE   NaN!)


 
6.実際の操作
6.1 C#のDateTimeタイプをJsのDateオブジェクトに変換
説明:C#のDateTimeタイプは、Jsonシーケンス化によってフロントに返されるフォーマットが「/Date(1419492640000)/」です.中間の数字で、DateTimeの値と開始時間の間のミリ秒数を表します.
例:
バックグラウンドコード:簡単なashx
public void ProcessRequest (HttpContext context) {

    System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();

    DateTime dt = DateTime.Parse("2014-12-25 15:30:40");

    string rs = js.Serialize(dt); //     Json

    context.Response.ContentType = "text/plain";

    context.Response.Write(rs);

}


フロントコード:
var dateTimeJsonStr = '\/Date(1419492640000)\/'; // C# DateTime     Json  

var msecStr = dateTimeJsonStr.toString().replace(/\/Date\(([-]?\d+)\)\//gi, "$1"); // => '1419492640000' :      ,       

var msesInt = Number.parseInt(msecStr); //           

var dt = new Date(msesInt); //    Date  

console.log(dt.toLocaleString()); // => 2014 12 25    3:30:40 


 
6.2カウントダウンの取得
説明:現在の時間が目的の時間とどのくらい異なるかを計算します.
例:
/**

*      

* @param dt {Date}:  Date  

* @return {Strin} :     :X X X 

*/

function getDownTime(dt) {

    // 1.     

    var intervalMsec = dt - Date.now(); //            ,          

    var intervalSec = intervalMsec / 1000; //      

    var day = parseInt(intervalSec / 3600 / 24); //   

    var hour = parseInt((intervalSec - day * 24 * 3600) / 3600); //   

    var min = parseInt((intervalSec - day * 24 * 3600 - hour * 3600) / 60); //   



    // 2.        0 ,            ,          :-X - - ,   ,            。

    if (intervalMsec < 0) {

        hour = 0 - hour;

        min = 0 - min;

    }



    // 3.        

    var rs = day + ' ' + hour + ' ' + min + ' ';

    return rs;

}



//     :2014/12/28 13:26

console.log(getDownTime(new Date('2015/06/01'))); // => 154 10 33 

console.log(getDownTime(new Date('2014/01/01'))); // => -361 13 26 


 
6.3 2 Dateオブジェクトのサイズ比較
説明:2つの開始時間とのミリ秒数を比較して、サイズを区別できます.
例:
var dt1 = new Date('2015/12/01');

var dt2 = new Date('2015/12/25');

console.log(dt1 > dt2); // => false


 
============================================================
この記事:3.4 JavaScript Dateオブジェクト紹介


Web開発の道シリーズ記事