JavaScript Date対象詳細

9619 ワード

本編では主にDateの日付と時間の対象の操作を紹介します.具体的な内容は以下の通りです.
目次1.紹介:Dateオブジェクトを説明する.
2.構造関数:Dateオブジェクトの構造関数new Date()のいくつかの方法を紹介します.
3.例示的な方法:Dateオブジェクトのget、setなどの例示的な方法を紹介する.
4.静的方法:Dateオブジェクトの静的方法を紹介する:Date.now()、Date.parse()など.
5.実際の操作:Dateオブジェクトのいくつかの例を紹介します.カウントダウンの取得、2つのDateオブジェクトのサイズの比較など.
一.紹介1.1説明
Dateオブジェクトは、操作日と時間の対象です.Dateオブジェクトの日付と時間の操作は方法のみです.
1.2属性
なしDateオブジェクトの日付と時間の操作は方法のみです.
二.構造関数2.1 new Date():現在のローカル日付と時間を返します.
パラメータ:なし
戻り値:
{Date}ローカル日付と時間を表すDateオブジェクトを返します.
例:

var dt = new Date();
console.log(dt); // =>               Date  
2.2 new Date(miliseconds):ミリ秒数をDateオブジェクトに変換する
パラメータ:
①miliseconds{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-M-dd HH:mm:ss:時間を省くと、戻るDateオブジェクトの時間は08:00(ローカルタイムゾーンを加える)です.時間を省略しないと、この文字列はIEで変換に失敗します.
戻り値:
{Date}変換後の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,optuuuday,opthouss,opt_minutes,opt uuseconds,opttt骢liseconds):年月日、時分秒をDateオブジェクトに変換する
パラメータ:
①year{int}:年;4桁の数字です.1999、2014
②monoth{int}:月;2桁の数字です.0から計算します.0は1月、11は12月を表します.
③opt_day{int}オプション:号;2桁の数字1から計算します.1は1番を表します.
④opt_houss{int}オプション:時;2桁の数字0~23を取る
⑤opt_minutes{int}オプション:分;2桁の数字0~59を取る
⑥opt_seconds{int}オプション:秒;2数字なし;0~59を取る
⑦opt_miliseconds{int}オプション:ミリ秒;0~999を取る
戻り値:
{Date}変換後の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
三.例示的な方法Dateオブジェクトの例示的な方法は、主に2つの形態に分けられる.ローカル時間とUTC時間.同じ方法で、一般的にこの2つのタイムフォーマットがあります.ここでは主にローカル時間の操作を紹介します. 
3.1 get方法
3.1.1 getFulYear():Dateオブジェクトの年値を返します.4桁の年
3.1.2 get Month():Dateオブジェクトの月値を返します.0から始まるので、真実の月=戻り値+1です.
3.1.3 get Date():Dateオブジェクトの月の日付値を返します.値の範囲は1~31です.
3.1.4 get Hours():Dateオブジェクトの時間値を返します.
3.1.5 get Minutes():Dateオブジェクトの分値を返します.
3.1.6 get Seconds():Dateオブジェクトの秒値を返します.
3.1.7 get Milliseconds():Dateオブジェクトのミリ秒値を返します.
3.1.8 getDay():Dateオブジェクトの一週間の値を返します.0は日曜日で、1は月曜日、2は火曜日です.これによって類推します.
3.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')
3.2セット方法
3.2.1 setFulYear(year、optmoonth、optudte):Dateオブジェクトの年値を設定する.4桁の年
3.2.2 set Month(month,optudte):Dateオブジェクトの月値を設定します.0は1月、11は12月を表します.
3.2.3 set Date(date):Dateオブジェクトの月の日付値を設定する.値の範囲は1~31です.
3.2.4 set Hours(hour,optumin,optusec,optumsec):Dateオブジェクトの時間値を設定します.
3.2.5 set Minutes(min、オプトセット、オプトセット):Dateオブジェクトの分値を設定します.
3.2.6 setSeconds(sec,optmsec):Dateオブジェクトの秒値を設定します.
3.2.7 set Milliconds(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  
3.3その他の方法
3.3.1 toString():Dateを「年月日時分秒」文字列に変換する
3.3.2 toLocareStering():Dateを「年月日時分秒」のローカルフォーマット文字列に変換する
3.3.3 toDateString():Dateを「年月日」文字列に変換する
3.3.4 toLocareDateString():Dateを「年月日」のローカルフォーマット文字列に変換する
3.3.5 toTimeString():Dateを'時分秒'文字列に変換する
3.3.6 toLocareTimeString():Dateを「時分秒」に変換するローカルフォーマット文字列
3.3.7 valueOf():getTime()と同様に、Dateオブジェクトと'1970/01/01 00:00'の間のミリ秒値を返します(北京時間のタイムゾーンは東8区で、スタートタイムは実際に:'1970/01/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')
四.静的方法4.1 Date.now()
説明:現在の日付と時間のDateオブジェクトと'1970/01/01 00:00:00'の間のミリ秒値を返します.
パラメータ:なし
戻り値:
{int}:現在時間と開始時間のミリ秒数.
例:

console.log(Date.now()); // => 1419431519276
4.2 Date.parse(dateStr)
説明:文字列をDateオブジェクトに変換し、このDateオブジェクトと'1970/01/01 00:00'の間のミリ秒値を返します.
パラメータ:
①dateStr{string}:Dateオブジェクトの文字列に変換できます(時間は省けます).文字列の書式は主に2つあります.
1)yyyy/MM/dd HH:mm:ss(推奨):時間を省くと、戻るDateの対象の時間は00:00:00です.
2)yyyy-M-dd HH:mm:ss:時間を省くと、戻るDateオブジェクトの時間は08:00(ローカルタイムゾーンを加える)です.時間を省略しないと、この文字列はIEにNaN(非数字)を返します.
戻り値:
{int}変換後の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!)
五. 実際の操作は5.1 C〓のDateTimeタイプをJsのDateオブジェクトに変換します.
説明:C〓〓のDateTimeタイプはJsonを通じてプログレッシブになってフロントに戻るフォーマットは「\/Date(141949264000)/」です.中間の数字は、DateTimeの値と開始時間との間のミリ秒数を表します.
例:
バックグラウンドコード:シンプルなasx

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
5.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 
 
5.3 2つのDateオブジェクトのサイズを比較する
説明:2つの開始時間のミリ秒数を比較して、サイズを区別することができます.
例:

var dt1 = new Date('2015/12/01');
var dt2 = new Date('2015/12/25');
console.log(dt1 > dt2); // => false
以上が本文の全部です.皆さんの勉強に役に立ちたいです.