JavaScript Dateオブジェクトの紹介
9906 ワード
原文:
JavaScript Dateオブジェクトの紹介
Date日付と時刻オブジェクト
1.紹介
Dateオブジェクトは、操作日時のオブジェクトです.Dateオブジェクトの日付と時間に対する操作は、メソッドのみで実行できます.
2.コンストラクタ
2.1 new Date():現在のローカル日付と時刻を返します.
パラメータ:なし
戻り値:
{Date}は、ローカルの日付と時刻を表すDateオブジェクトを返します.
例:
2.2 new Date(milliseconds):ミリ秒数をDateオブジェクトに変換
パラメータ:
1 milliseconds{int}:ミリ秒数;'1970/01/01 00:00:00'を起点としてオーバーラップを開始するミリ秒数を表します.
注意:起点の时分秒に现在所在する时区を加え、北京时间の时区は东8区で、起点时间は実际には「1970/01/01 08:00」です.
戻り値:
{Date}は、オーバーラップしたDateオブジェクトを返します.
例:
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オブジェクトを返します.
例:
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オブジェクトを返します.
例:
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').
例:
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オブジェクトのミリ秒値を設定します.
例:
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'です).
例:
5.静的方法
5.1 Date.now()
説明:現在の日付と時刻を返すDateオブジェクトと'1970/01/01 00:00:00'のミリ秒値(北京時間のタイムゾーンは東8ゾーン、開始時刻は実際には'1970/01/01 08:00:00')
パラメータ:なし
戻り値:
{int}:現在の時間と開始時間の間のミリ秒数.
例:
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オブジェクトと開始時間のミリ秒数を返します.
例:
6.実際の操作
6.1 C#のDateTimeタイプをJsのDateオブジェクトに変換
説明:C#のDateTimeタイプは、Jsonシーケンス化によってフロントに返されるフォーマットが「/Date(1419492640000)/」です.中間の数字で、DateTimeの値と開始時間の間のミリ秒数を表します.
例:
バックグラウンドコード:簡単なashx
フロントコード:
6.2カウントダウンの取得
説明:現在の時間が目的の時間とどのくらい異なるかを計算します.
例:
6.3 2 Dateオブジェクトのサイズ比較
説明:2つの開始時間とのミリ秒数を比較して、サイズを区別できます.
例:
============================================================
この記事:3.4 JavaScript Dateオブジェクト紹介
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オブジェクト紹介