15章日時

現実の多くのアプリケーションでは日付や時刻の処理が必要になります。残念ながらJavaScriptのオブジェクトDateの機能は限られています(名前はDateですが、このオブジェクトは日付だけでなく時刻関連の処理も行います)。標準のDateオブジェクトだけでは必要な機能が満たされないというケースに備えて、この章ではライブラリMoment.jsもあわせて紹介します。

もともとJavaScriptのDateオブジェクトは、Netscapeのプログラマー、Ken SmithがJavaのjava.util.Dateを移植してできたものです。ですから「JavaScriptがJavaと何の関係もない」というのは必ずしも正しい表現ではなく、誰かに両者の関係を尋ねられたら、「まあ、Dateオブジェクトと基本的な構文が共通であること以外は、ほとんどないですね」と答えておけば間違いのないところでしょう。

15.1 タイムゾーン、タイムスタンプ、UNIXエポック

率直に言って、現在地球上の大部分の地域で使われているグレゴリオ暦は複雑すぎて扱いが面倒です。60秒で1分、60分で1時間、24時間で1日と「繰り上がり」は不規則で、うるう年や閏秒もあります。さらにタイムゾーンが複雑さに拍車をかけています。しかし世界中で使われている以上、これを受け入れないわけにはいきません。

日時を所定の時刻からの秒数で表せば、数直線上できちんと順序づけられますし、計算も単純でコンピュータで処理するためには理想的な方法と言えるかもしれません。

しかし、人間のコミュニケーションではうまくいきません。「ねえ、1487062800000に夕飯でもどう?」(1487062800000は、日本標準時で2017年2月14日の午後6時です)と言われても、困ってしまいます。 ...

Get 初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.