JSにおける日時操作計算例
1537 ワード
≪インスタンス|Instance|emdw≫
一:既知の日付形式は「YYYY/MM/DD」で、今日に対する日数差を計算する.
二:n日後の日付を固定形式で出力する
三:確定日n日後の日付を出力し、フォーマットは「YYYY/MM/DD」
説明
まず、この文章を書く意図を説明します.時間操作はjsプログラミングでよく使われる操作で、一般的な応用では、時間の同期に対する要求は高くなく、本体時間を使うことが多いので、DateのAPIも重く見えます.我々はいくつかの一般的な方法を深く理解するだけで、第三者に頻繁に依存することなくDateを制御することができます.ここでは日付のみを操作し、timeを処理しません.
Dateオブジェクトはjs内蔵オブジェクトで、時間操作に関するすべてのメソッドがカプセル化されており、そのプロトタイププロパティに宣言されています.constructorには、now()とparse()の2つの一般的なメソッドがあり、いずれも70年から現在までのミリ秒数を返します.ミリ秒数を返すもう1つの方法は、インスタンスのvalueOf()メソッドで、ミリ秒を直接操作することで、日付関係の計算をより柔軟かつ正確にすることができます.さらにミリ秒を日付に変換する場合は、Dateのインスタンス構築方法を呼び出し、文字列を組み立てるだけです.
実践的な応用の中で、またいろいろな时間の操作についての需要があって、補充を歓迎して、私はすべて一つ一つ解答します.(オリジナルコンテンツ、転載歓迎)
一:既知の日付形式は「YYYY/MM/DD」で、今日に対する日数差を計算する.
function fromNow(date){
var mTimes = new Date(date);
var fromTimes = Date.now() - mTimes.valueOf();
return Math.floor(fromTimes/(24*60*60*1000));
}
var date = "2015/09/18";
console.log(fromNow(date));//3
二:n日後の日付を固定形式で出力する
function afterToday(n){
var endTimes = Date.now() + n*24*60*60*1000;
var endDate = new Date(endTimes);
return endDate.getFullYear()+"/"+(endDate.getMonth()+1)+"/"+endDate.getDate();
}
console.log(afterToday(2));//2016/09/23
三:確定日n日後の日付を出力し、フォーマットは「YYYY/MM/DD」
function afterDate(date,n){
var mTimes = new Date(date);
var endTimes = mTimes.valueOf() + n*24*60*60*1000;
var endDate = new Date(endTimes);
return endDate.getFullYear()+"/"+(endDate.getMonth()+1)+"/"+endDate.getDate();
}
afterDate("2016/02/28",1);//2016/02/29
説明
まず、この文章を書く意図を説明します.時間操作はjsプログラミングでよく使われる操作で、一般的な応用では、時間の同期に対する要求は高くなく、本体時間を使うことが多いので、DateのAPIも重く見えます.我々はいくつかの一般的な方法を深く理解するだけで、第三者に頻繁に依存することなくDateを制御することができます.ここでは日付のみを操作し、timeを処理しません.
Dateオブジェクトはjs内蔵オブジェクトで、時間操作に関するすべてのメソッドがカプセル化されており、そのプロトタイププロパティに宣言されています.constructorには、now()とparse()の2つの一般的なメソッドがあり、いずれも70年から現在までのミリ秒数を返します.ミリ秒数を返すもう1つの方法は、インスタンスのvalueOf()メソッドで、ミリ秒を直接操作することで、日付関係の計算をより柔軟かつ正確にすることができます.さらにミリ秒を日付に変換する場合は、Dateのインスタンス構築方法を呼び出し、文字列を組み立てるだけです.
実践的な応用の中で、またいろいろな时間の操作についての需要があって、補充を歓迎して、私はすべて一つ一つ解答します.(オリジナルコンテンツ、転載歓迎)