[英]Wrong date from timestamp
我有一個自己無法解決的問題。
這是從我的網站數據庫中獲取的時間戳 1308085200。 它代表 2011-06-15 12:00:00
這是 javascript 代碼,我用它來“獲取”人類可讀格式的日期。
var date = new Date(1308085200 * 1000);
var year = date.getFullYear();
var month = date.getMonth();
var day = date.getDate();
var hour = date.getUTCHours();
var minute = date.getUTCMinutes();
var seconds = date.getUTCSeconds();
問題是我得到錯誤的結果。 例如上面的代碼顯示 2011-5-15 21:0:0 而不是 2011-06-15 12:00:00
我做錯了什么以及如何解決?
JavaScript 的Date::getMonth()
從 0 到 11 返回從零開始的 integer,這就是為什么您的日期顯示為 5 月而不是 6 月的原因。
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getMonth
至於時間部分,這就是我得到的(AEST)
var d = new Date(1308085200000); // Wed Jun 15 07:00:00 GMT+1000 (EST)
d.toUTCString() // Tue, 14 Jun 2011 21:00:00 GMT
d.getUTCFullYear() // 2011
d.getUTCMonth() // 5
d.getUTCDate() // 14
d.getUTCHours() // 21
d.getUTCMinutes() // 0
d.getUTCSeconds() // 0
看起來你的時間戳實際上不是你想象的那樣。
好吧,JavaScript 的 getMonth() function 很爛,一月份從 0 開始。 你必須添加一個。
也許您想使用date js ,因為它解決了其中一些問題。
.日期和時間可能因您所在的時區而異。這就是為什么在我的區域 (GMT+2000) new Date(1308085200*1000)
顯示 ) 。 查看此參考資料,了解您一直想了解的有關 javascript 中日期的所有信息
關於格式(前導零等),也許這個 jsfiddle可以幫助你?
嘗試這個:
function timeConverter(createdAt) {
var date = new Date(createdAt);
date.toUTCString()
var year = date.getUTCFullYear();
var month = date.getUTCMonth()+1;
var day = date.getUTCDate();
return day+"-"+month+"-"+year;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.