日付日付オブジェクト
Date 日付オブジェクト
JavaScript では、Date オブジェクトは日付と時刻を表すために使用されます。
現(xiàn)在のシステム時刻を取得するには、次を使用します:
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, 毫秒數(shù) now.getTime(); // 1435146562875, 以number形式表示的時間戳
現(xiàn)在時刻はブラウザがネイティブ オペレーティング システムから取得した時刻であり、ユーザーが現(xiàn)在の時刻を任意の値に設(shè)定できるため、正確ではない可能性があることに注意してください。
日付と時刻を指定する Date オブジェクトを作成したい場合は、以下を使用できます:
var d = new Date(2015, 5, 19, 20, 15, 30, 123); d; // Fri Jun 19 2015 20:15:30 GMT+0800 (CST)
非常に不正な場所に気づいたかもしれません。つまり、JavaScript の月の範(fàn)囲は 0 からの整數(shù)として表現(xiàn)されます。から 11 まで、0 は 1 月を表し、1 は 2 月を表します...、つまり、6 月を表すには、5 で渡します。これは間違いなく、當(dāng)時の JavaScript の設(shè)計者の脳波によるものでしたが、今では修正することは不可能です。
指定された日付と時刻を作成する 2 番目の方法は、ISO 8601 形式に準(zhǔn)拠した文字列を解析することです:
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 オブジェクトで表される時間は常にブラウザのタイムゾーンに従って表示されますが、両方の現(xiàn)地時間も表示できます。と現(xiàn)地時間 調(diào)整済み UTC 時間:
var d = new Date(1435146562875); d.toLocaleString(); // '2015/6/24 下午7:49:22',本地時間(北京時區(qū)+8:00),顯示的字符串與操作系統(tǒng)設(shè)定的格式有關(guān) d.toUTCString(); // 'Wed, 24 Jun 2015 11:49:22 GMT',UTC時間,與本地時間相差8小時
それでは、JavaScript でタイムゾーン変換を行うにはどうすればよいでしょうか?実際、數(shù)値型のタイムスタンプを渡す限り、タイム ゾーンの変換を気にする必要はありません。どのブラウザでもタイムスタンプを現(xiàn)地時間に正しく変換できます。
タイムスタンプとは何ですか?タイムスタンプは、1970 年 1 月 1 日の 0:00 GMT タイム ゾーンから現(xiàn)在までのミリ秒數(shù)を表す、自己増加する整數(shù)です。ブラウザーが存在するコンピューターの時間が正確であると仮定すると、世界中のどのタイムゾーンのコンピューターでも生成されるタイムスタンプの數(shù)値は現(xiàn)時點では同じになります。したがって、タイムスタンプは瞬間を正確に表すことができ、何の関係もありません。タイムゾーンとともに。
つまり、タイムスタンプを渡すか、データベースからタイムスタンプを読み取って、JavaScript に自動的にタイムスタンプを現(xiàn)地時間に変換させるだけで済みます。
現(xiàn)在のタイムスタンプを取得するには、次を使用できます:
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>