2015-01-06 82 views
0

日期格式,我從JSON收到是這樣的: -Json的日期格式轉換減去1天

/Date(1412101800000)/ 

當我轉換成日期格式此,我試用1天減。

我使用下面的代碼: -

var dateFormat = new Date(parseInt(obj['DATEOFJOINING'].substr(6))).toISOString().substr(0, 10); 

dateFormat results in 2014-09-30 

它來自Db原來的日期是2014-10-01

這究竟是爲什麼?如何獲得完美的約會?

+1

可能是因爲服務器和客戶端PC的時區不同。 – madforstrength

回答

0

這是由於客戶端的時區。
使用Date.prototype.getTimezoneOffset得到彌補:

var date = new Date(1412101800000); 
var gmtDate = new Date(date.valueOf() + date.getTimezoneOffset() * 60 * 1000); 
+0

不幸運...顯示日期減去1天..! – Anup

2

這是一個時間戳。

new Date(parseInt('/Date(1412101800000)/'.substr(6))); 

剛纔設定的時間時區。

var dateFormat = new Date(parseInt('/Date(1412101800000)/'.substr(6))); 
dateFormat.setTime(dateFormat.getTime() + dateFormat.getTimezoneOffset()*60*1000 ); 

日期在您的時區*:30/09/2014 11:30:00
日在柏林*:30/09/2014 19:30:00
在洛杉磯* 30日期/ 09/2014 19:30:00
日在北京*:2014年1月10日01:30:00
日在紐約*:30/09/2014 13:30:00

對於示例

var dateFormat = new Date(parseInt('/Date(1412101800000)/'.substr(6))); 
    dateFormat.setTime(dateFormat.getTime() + dateFormat.getTimezoneOffset()*(-10*100000)); 

日期{Wed Oct 01 2014 12:10:00 GMT + 0100(BST)}

+0

我試過我的代碼...仍然顯示我的日期減去1天。 – Anup

+0

我使用角度ng格...當我編輯日期字段...它顯示'星期二2014年9月30日18:30:00 GMT + 0530(印度標準時間)' – Anup

+0

@Anup你需要把你的時區.Just替換值60 * 100 – Oyeme

0

由於@madforstrength評論,它使用GMT的偏移量。 爲了得到彌補分鐘,你可以嘗試:

var d = new Date() 
var n = d.getTimezoneOffset(); 

並調整爲當地時間。您可以參考here