Date 日付オブジェクト
JavaScript では、Date オブジェクトは日付と時刻を表すために使用されます。
現在のシステム時刻を取得するには、次を使用します:
var now = new Date(); now; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST) now.getFullYear(); // 2015, 年份 now.getMonth(); // 5, 月份,注意月份范围是0~11,5表示六月 now.getDate(); // 24, 表示24号 now.getDay(); // 3, 表示星期三 now.getHours(); // 19, 24小时制 now.getMinutes(); // 49, 分钟 now.getSeconds(); // 22, 秒 now.getMilliseconds(); // 875, 毫秒数 now.getTime(); // 1435146562875, 以number形式表示的时间戳
現在時刻はブラウザがネイティブ オペレーティング システムから取得した時刻であり、ユーザーが現在の時刻を任意の値に設定できるため、正確ではない可能性があることに注意してください。
日付と時刻を指定する Date オブジェクトを作成したい場合は、以下を使用できます:
var d = new Date(2015, 5, 19, 20, 15, 30, 123); d; // Fri Jun 19 2015 20:15:30 GMT+0800 (CST)
非常に不正な場所に気づいたかもしれません。つまり、JavaScript の月の範囲は 0 からの整数として表現されます。から 11 まで、0 は 1 月を表し、1 は 2 月を表します...、つまり、6 月を表すには、5 で渡します。これは間違いなく、当時の JavaScript の設計者の脳波によるものでしたが、今では修正することは不可能です。
指定された日付と時刻を作成する 2 番目の方法は、ISO 8601 形式に準拠した文字列を解析することです:
var d = Date.parse('2015-06-24T19:49:22.875+08:00'); d; // 1435146562875
ただし、これは Date オブジェクトではなく、タイムスタンプを返します。ただし、タイムスタンプを使用すると、簡単に日付に変換できます:
var d = new Date(1435146562875); d; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST)
<html> <body> <script type="text/javascript"> var d=new Date(); document.write("从 1970/01/01 至今已过去 " + d.getTime() + " 毫秒"); </script> </body> </html>
タイムゾーン
Date オブジェクトで表される時間は常にブラウザのタイムゾーンに従って表示されますが、両方の現地時間も表示できます。と現地時間 調整済み UTC 時間:
var d = new Date(1435146562875); d.toLocaleString(); // '2015/6/24 下午7:49:22',本地时间(北京时区+8:00),显示的字符串与操作系统设定的格式有关 d.toUTCString(); // 'Wed, 24 Jun 2015 11:49:22 GMT',UTC时间,与本地时间相差8小时
それでは、JavaScript でタイムゾーン変換を行うにはどうすればよいでしょうか?実際、数値型のタイムスタンプを渡す限り、タイム ゾーンの変換を気にする必要はありません。どのブラウザでもタイムスタンプを現地時間に正しく変換できます。
タイムスタンプとは何ですか?タイムスタンプは、1970 年 1 月 1 日の 0:00 GMT タイム ゾーンから現在までのミリ秒数を表す、自己増加する整数です。ブラウザーが存在するコンピューターの時間が正確であると仮定すると、世界中のどのタイムゾーンのコンピューターでも生成されるタイムスタンプの数値は現時点では同じになります。したがって、タイムスタンプは瞬間を正確に表すことができ、何の関係もありません。タイムゾーンとともに。
つまり、タイムスタンプを渡すか、データベースからタイムスタンプを読み取って、JavaScript に自動的にタイムスタンプを現地時間に変換させるだけで済みます。
現在のタイムスタンプを取得するには、次を使用できます:
if (Date.now) { alert(Date.now()); // 老版本IE没有now()方法 } else { alert(new Date().getTime()); }
<html> <body> <script type="text/javascript"> var d=new Date() var weekday=new Array(7) weekday[0]="星期日" weekday[1]="星期一" weekday[2]="星期二" weekday[3]="星期三" weekday[4]="星期四" weekday[5]="星期五" weekday[6]="星期六" document.write("今天是" + weekday[d.getDay()]) </script> </body> </html>