JSにおける日時操作計算例


≪インスタンス|Instance|emdw≫
一:既知の日付形式は「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のインスタンス構築方法を呼び出し、文字列を組み立てるだけです.
実践的な応用の中で、またいろいろな时間の操作についての需要があって、補充を歓迎して、私はすべて一つ一つ解答します.(オリジナルコンテンツ、転載歓迎)