时间戳到人们可读的格式
那么我有一个奇怪的问题,而从UNIX时间戳转换为人类表示使用JavaScript
这是时间戳
1301090400
这是我的JavaScript
var date = new Date(timestamp * 1000); var year = date.getFullYear(); var month = date.getMonth(); var day = date.getDay(); var hour = date.getHours(); var minute = date.getMinutes(); var seconds = date.getSeconds();
我预计结果是2011年2月25日22 00 00.但是,2011年2月6日,0日,0日我想念什么?
getDay()
返回星期几。 要获取date,请使用date.getDate()
。 getMonth()
检索月份,但月份是基于零的,所以使用getMonth()+1
应该给你正确的月份。 在这里,时间价值似乎没问题,尽pipe这里的时间是23(GMT + 1)。 如果你想要普遍的价值,添加UTC
的方法(如date.getUTCFullYear()
, date.getUTCHours()
)
var timestamp = 1301090400, date = new Date(timestamp * 1000), datevalues = [ date.getFullYear(), date.getMonth()+1, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), ]; alert(datevalues); //=> [2011, 3, 25, 23, 0, 0]
var newDate = new Date(); newDate.setTime(unixtime*1000); dateString = newDate.toUTCString();
其中unixtime
是你的SQL DB返回的时间。 这是一个小提琴,如果有帮助。
例如,在当前时间使用它:
document.write( new Date().toUTCString() );
小时,分钟和秒钟取决于您的操作系统的时区。 在格林尼治标准时间(UST)22:00:00,但在不同的时区可以是任何东西。 因此,将时区偏移添加到创buildGMTdate的时间:
var d = new Date(); date = new Date(timestamp*1000 + d.getTimezoneOffset() * 60000)
这里是kooilnc的回答w /填充0的
function getFormattedDate() { var date = new Date(); var month = date.getMonth() + 1; var day = date.getDate(); var hour = date.getHours(); var min = date.getMinutes(); var sec = date.getSeconds(); month = (month < 10 ? "0" : "") + month; day = (day < 10 ? "0" : "") + day; hour = (hour < 10 ? "0" : "") + hour; min = (min < 10 ? "0" : "") + min; sec = (sec < 10 ? "0" : "") + sec; var str = date.getFullYear() + "-" + month + "-" + day + "_" + hour + ":" + min + ":" + sec; /*alert(str);*/ return str; }
使用Date.prototype.toLocaleTimeString()
在这里logging
请注意url中的语言环境示例en-US。