JS中通過字符串構(gòu)造指定的日期對(duì)象
最近遇到這樣一個(gè)需求:首先要從數(shù)據(jù)庫(kù)中查出一個(gè)字段,這個(gè)字段是日期型的,然后在js中對(duì)這個(gè)日期進(jìn)行判斷,看它是否小于當(dāng)前時(shí)間兩個(gè)小時(shí)。關(guān)鍵的問題就是如何將數(shù)據(jù)庫(kù)中的時(shí)間變成在js中的時(shí)間。
我是這樣處理的,在從數(shù)據(jù)庫(kù)中查詢這個(gè)字段的時(shí)候就把把它轉(zhuǎn)化成了日期型,我使用了TO_CHAR函數(shù)(我用的是Oracle數(shù)據(jù)庫(kù)),如下所示:
TO_CHAR(arrivedate,'MONTH DD,YYYY HH24:MI:SS',
'NLS_DATE_LANGUAGE=AMERICAN')。然后通過隱藏域把這個(gè)字符串傳入到j(luò)s的函數(shù)當(dāng)中,最后調(diào)用js中Date對(duì)象的new Date(datestring)方法構(gòu)造出一個(gè)Date對(duì)象,它與我們數(shù)據(jù)庫(kù)中對(duì)應(yīng)的那個(gè)字段表示同一個(gè)時(shí)間。接下來的事情就好辦了,通過
new Date()得到當(dāng)期日期,然后比較這兩個(gè)日期對(duì)象的毫秒數(shù)就可以了。這里有個(gè)要注意的地方是,在js中利用new Date(datestring)得到指定的日期對(duì)象時(shí),這個(gè)datestring必須要滿足一定的格式要求,它的格式為'Month Day,Year Hours:Minutes:Seconds',這也是為什么我從數(shù)據(jù)庫(kù)中查詢?nèi)掌跁r(shí)要指定格式為 “MONTH DD,YYYY HH24:MI:SS”的原因。
