Bueno, tengo un problema extraño al convertir de la marca de tiempo de Unix a la representación humana usando javascript
Aquí está la marca de tiempo
1301090400
Este es mi 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();
Esperaba que los resultados fueran 2011 2, 25 22 00 00. Pero es 2011, 2, 6, 0, 0, 0 ¿Qué me pierdo?
javascript
timestamp
Georgevich
fuente
fuente
Respuestas:
getDay()
devuelve el día de la semana. Para obtener la fecha, usedate.getDate()
.getMonth()
recupera el mes, pero el mes se basa en cero, por lo que el usogetMonth()+1
debería darle el mes correcto. El valor de tiempo parece estar bien aquí, aunque la hora es 23 aquí (GMT + 1). Si desea valores universales, agregueUTC
a los métodos (por ejemplodate.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]
fuente
minute = (minute < 10 ? "0" : "") + minute;
date.getUTCHours()
?var newDate = new Date(); newDate.setTime(unixtime*1000); dateString = newDate.toUTCString();
¿Dónde
unixtime
es el tiempo devuelto por su sql db. Aquí hay un violín si ayuda.Por ejemplo, usándolo para el tiempo actual:
document.write( new Date().toUTCString() );
fuente
"unixtime is undefined"
es lo que obtengo aquínew Date(1480966325 * 1000).toUTCString()
aquí está la respuesta de kooilnc con ceros acolchados
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; }
fuente
Las horas, los minutos y los segundos dependen de la zona horaria de su sistema operativo. En GMT (UST) son las 22:00:00, pero en diferentes zonas horarias puede ser cualquier cosa. Así que agregue el desplazamiento de la zona horaria a la hora para crear la fecha GMT:
var d = new Date(); date = new Date(timestamp*1000 + d.getTimezoneOffset() * 60000)
fuente
utilizar
Date.prototype.toLocaleTimeString()
como se documenta aquítenga en cuenta el ejemplo de configuración regional en-US en la URL.
fuente