pythondatetime_Date
在JavaScript中,Date對象用來表示日期和時(shí)間。
要獲取系統(tǒng)當(dāng)前時(shí)間,用:
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小時(shí)制
now.getMinutes(); // 49, 分鐘
now.getSeconds(); // 22, 秒
now.getMilliseconds(); // 875, 毫秒數(shù)
now.getTime(); // 1435146562875, 以number形式表示的時(shí)間戳
注意,當(dāng)前時(shí)間是瀏覽器從本機(jī)操作系統(tǒng)獲取的時(shí)間,所以不一定準(zhǔn)確,因?yàn)橛脩艨梢园旬?dāng)前時(shí)間設(shè)定為任何值。
如果要創(chuàng)建一個(gè)指定日期和時(shí)間的Date對象,可以用:
var d = new Date(2015, 5, 19, 20, 15, 30, 123);
d; // Fri Jun 19 2015 20:15:30 GMT+0800 (CST)
你可能觀察到了一個(gè)非常非常坑爹的地方,就是JavaScript的月份范圍用整數(shù)表示是0~11,0表示一月,1表示二月……,所以要表示6月,我們傳入的是5!這絕對是JavaScript的設(shè)計(jì)者當(dāng)時(shí)腦抽了一下,但是現(xiàn)在要修復(fù)已經(jīng)不可能了。
JavaScript的Date對象月份值從0開始,牢記0=1月,1=2月,2=3月,……,11=12月。
第二種創(chuàng)建一個(gè)指定日期和時(shí)間的方法是解析一個(gè)符合ISO 8601格式的字符串:
var d = Date.parse('2015-06-24T19:49:22.875+08:00');
d; // 1435146562875
但它返回的不是Date對象,而是一個(gè)時(shí)間戳。不過有時(shí)間戳就可以很容易地把它轉(zhuǎn)換為一個(gè)Date:
var d = new Date(1435146562875);
d; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST)
d.getMonth(); // 5
使用Date.parse()時(shí)傳入的字符串使用實(shí)際月份01~12,轉(zhuǎn)換為Date對象后getMonth()獲取的月份值為0~11。
時(shí)區(qū)
Date對象表示的時(shí)間總是按瀏覽器所在時(shí)區(qū)顯示的,不過我們既可以顯示本地時(shí)間,也可以顯示調(diào)整后的UTC時(shí)間:
var d = new Date(1435146562875);
d.toLocaleString(); // '2015/6/24 下午7:49:22',本地時(shí)間(北京時(shí)區(qū)+8:00),顯示的字符串與操作系統(tǒng)設(shè)定的格式有關(guān)
d.toUTCString(); // 'Wed, 24 Jun 2015 11:49:22 GMT',UTC時(shí)間,與本地時(shí)間相差8小時(shí)
那么在JavaScript中如何進(jìn)行時(shí)區(qū)轉(zhuǎn)換呢?實(shí)際上,只要我們傳遞的是一個(gè)number類型的時(shí)間戳,我們就不用關(guān)心時(shí)區(qū)轉(zhuǎn)換。任何瀏覽器都可以把一個(gè)時(shí)間戳正確轉(zhuǎn)換為本地時(shí)間。
時(shí)間戳是個(gè)什么東西?時(shí)間戳是一個(gè)自增的整數(shù),它表示從1970年1月1日零時(shí)整的GMT時(shí)區(qū)開始的那一刻,到現(xiàn)在的毫秒數(shù)。假設(shè)瀏覽器所在電腦的時(shí)間是準(zhǔn)確的,那么世界上無論哪個(gè)時(shí)區(qū)的電腦,它們此刻產(chǎn)生的時(shí)間戳數(shù)字都是一樣的,所以,時(shí)間戳可以精確地表示一個(gè)時(shí)刻,并且與時(shí)區(qū)無關(guān)。
所以,我們只需要傳遞時(shí)間戳,或者把時(shí)間戳從數(shù)據(jù)庫里讀出來,再讓JavaScript自動轉(zhuǎn)換為當(dāng)?shù)貢r(shí)間就可以了。
要獲取當(dāng)前時(shí)間戳,可以用:
'use strict';
----
if (Date.now) {
console.log(Date.now()); // 老版本IE沒有now()方法
} else {
console.log(new Date().getTime());
}
練習(xí)
小明為了和女友慶祝情人節(jié),特意制作了網(wǎng)頁,并提前預(yù)定了法式餐廳。小明打算用JavaScript給女友一個(gè)驚喜留言:
'use strict';
----
var today = new Date();
if (today.getMonth() === 2 && today.getDate() === 14) {
alert('親愛的,我預(yù)定了晚餐,晚上6點(diǎn)在餐廳見!');
}
結(jié)果女友并未出現(xiàn)。小明非常郁悶,請你幫忙分析他的JavaScript代碼有何問題。
總結(jié)
以上是生活随笔為你收集整理的pythondatetime_Date的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3seek_Python s
- 下一篇: oracle group by 多类别_