Además de todas las respuestas aquí, el estándar de facto en js fecha / tiempo de manipulación actualmente es moment.js sorprende que nadie ha mencionado aquí
alonisser
2
@ alonisser: quizás porque convertir un valor de tiempo en una fecha es trivial. Formatearlo tampoco es particularmente difícil.
RobG
Respuestas:
128
El valor 1382086394000 es probablemente un valor de tiempo, que es el número de milisegundos desde 1970-01-01T00: 00: 00Z. Puede usarlo para crear un objeto de fecha ECMAScript usando el constructor de fecha :
var d = newDate(1382086394000);
La forma de convertir eso en algo legible depende de usted. Simplemente enviarlo a la salida debe llamar al método toString interno (y totalmente dependiente de la implementación) * que generalmente imprime la hora del sistema equivalente en una forma legible por humanos, por ejemplo
Fri Oct 18201318:53:14 GMT+1000 (EST)
En ES5 hay algunas otras opciones de formato integradas:
y así. Tenga en cuenta que la mayoría dependen de la implementación y serán diferentes en diferentes navegadores. Si desea el mismo formato en todos los navegadores, deberá formatear la fecha usted mismo, por ejemplo:
* El formato de Date.prototype.toString se ha estandarizado en ECMAScript 2018 . Puede pasar un tiempo antes de que sea ubicuo en todas las implementaciones, pero al menos los navegadores más comunes lo admiten ahora.
También existe togmtstring (), pero en desuso. No entiendo por qué hay tolocalestring () como en JS, todo es local en el navegador. ¿O toLocaleString es una separación de Nodejs? Si usa JS del lado del servidor y la zona horaria entre el cliente y el servidor es diferente, ¿obtiene la zona del cliente?
Timo
1
@ timo: el uso de "locale" es un nombre inapropiado para un método que intenta presentar un formato que sea consistente con las preferencias de formato del usuario. Desafortunadamente, se basa en el idioma, que no es un determinante particularmente bueno del formato preferido. Sería preferible formatear las fechas según las preferencias del sistema para el formato de fecha en lugar del código de idioma mucho menos específico.
RobG
32
Esto funciona bien. Registrado en el chromenavegador:
Aquí están las formas simples de cada confusión de formato de fecha:
para la fecha actual:
var current_date=newDate();
para obtener la marca de tiempo de la fecha actual:
var timestamp=newDate().getTime();
para convertir una fecha particular en marca de tiempo:
var timestamp_formation=newDate('mm/dd/yyyy').getTime();
para convertir la marca de tiempo en Fecha:
var timestamp=newDate('02/10/2016').getTime();
var todate=newDate(timestamp).getDate();
var tomonth=newDate(timestamp).getMonth()+1;
var toyear=newDate(timestamp).getFullYear();
var original_date=tomonth+'/'+todate+'/'+toyear;
OUTPUT:
02/10/2016
sí @melpomene, la mitad del código es irrelevante pero lo escribí para despejar más dudas sobre la formación de la fecha ... !!! y una cosa más que no lo copié de ningún lado. Lo probé en mi propio código y hace 2 días trabajé en él
Trojan
1
No importa si lo copió literalmente o no. El caso es que toda la información ya está en otra respuesta. Por cierto, su último ejemplo en realidad no produce el resultado que afirma que produce.
melpomene
La salida mostrada no coincide con la salida del código (2/10/2016)
Suyash Mittal
9
necesitamos crear una nueva función usando JavaScript.
Esto es lo que hice para la API de Instagram. marca de tiempo convertida con el método de fecha multiplicando por 1000 y luego agregando todas las entidades individualmente como (año, meses, etc.)
creó el nombre de la lista de meses personalizado y se asignó con el getMonth()método que devuelve el índice del mes.
Mi variante ES6 produce una cadena como esta 2020-04-05_16:39:45.85725. No dude en modificar la declaración de devolución para obtener el formato que necesita:
const getDateStringServ = timestamp => {
const plus0 = num =>`0${num.toString()}`.slice(-2)
const d = newDate(timestamp)
const year = d.getFullYear()
const monthTmp = d.getMonth() + 1const month = plus0(monthTmp)
const date = plus0(d.getDate())
const hour = plus0(d.getHours())
const minute = plus0(d.getMinutes())
const second = plus0(d.getSeconds())
const rest = timestamp.toString().slice(-5)
return`${year}-${month}-${date}_${hour}:${minute}:${second}.${rest}`
}
Respuestas:
El valor 1382086394000 es probablemente un valor de tiempo, que es el número de milisegundos desde 1970-01-01T00: 00: 00Z. Puede usarlo para crear un objeto de fecha ECMAScript usando el constructor de fecha :
var d = new Date(1382086394000);
La forma de convertir eso en algo legible depende de usted. Simplemente enviarlo a la salida debe llamar al método toString interno
(y totalmente dependiente de la implementación)* que generalmente imprime la hora del sistema equivalente en una forma legible por humanos, por ejemploFri Oct 18 2013 18:53:14 GMT+1000 (EST)
En ES5 hay algunas otras opciones de formato integradas:
y así. Tenga en cuenta que la mayoría dependen de la implementación y serán diferentes en diferentes navegadores. Si desea el mismo formato en todos los navegadores, deberá formatear la fecha usted mismo, por ejemplo:
alert(d.getDate() + '/' + (d.getMonth()+1) + '/' + d.getFullYear());
* El formato de Date.prototype.toString se ha estandarizado en ECMAScript 2018 . Puede pasar un tiempo antes de que sea ubicuo en todas las implementaciones, pero al menos los navegadores más comunes lo admiten ahora.
fuente
Esto funciona bien. Registrado en el
chrome
navegador:var theDate = new Date(timeStamp_value * 1000); dateString = theDate.toGMTString(); alert(dateString );
fuente
1000
. De lo contrario, ¡¡harás un hyperloop en el espacio futuro !!por qué no simplemente
new Date (timestamp);
Una fecha es una fecha, el formato de la misma es un asunto diferente.
fuente
Moment.js puede convertir marcas de tiempo de Unix en cualquier formato personalizado
En este caso :
var time = moment(1382086394000).format("DD-MM-YYYY h:mm:ss");
imprimirá
18-10-2013 11:53:14
;Aquí hay un plunker que demuestra esto.
fuente
Aquí están las formas simples de cada confusión de formato de fecha:
para la fecha actual:
var current_date=new Date();
para obtener la marca de tiempo de la fecha actual:
var timestamp=new Date().getTime();
para convertir una fecha particular en marca de tiempo:
var timestamp_formation=new Date('mm/dd/yyyy').getTime();
para convertir la marca de tiempo en Fecha:
var timestamp=new Date('02/10/2016').getTime(); var todate=new Date(timestamp).getDate(); var tomonth=new Date(timestamp).getMonth()+1; var toyear=new Date(timestamp).getFullYear(); var original_date=tomonth+'/'+todate+'/'+toyear; OUTPUT: 02/10/2016
fuente
necesitamos crear una nueva función usando JavaScript.
function unixTime(unixtime) { var u = new Date(unixtime*1000); return u.getUTCFullYear() + '-' + ('0' + u.getUTCMonth()).slice(-2) + '-' + ('0' + u.getUTCDate()).slice(-2) + ' ' + ('0' + u.getUTCHours()).slice(-2) + ':' + ('0' + u.getUTCMinutes()).slice(-2) + ':' + ('0' + u.getUTCSeconds()).slice(-2) + '.' + (u.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) }; console.log(unixTime(1370001284)) 2016-04-30 08:36:26.000
fuente
formatDate
es la función a la que puede llamarla y pasar la fecha a la que desea formateardd/mm/yyyy
var unformatedDate = new Date("2017-08-10 18:30:00"); $("#hello").append(formatDate(unformatedDate)); function formatDate(nowDate) { return nowDate.getDate() +"/"+ (nowDate.getMonth() + 1) + '/'+ nowDate.getFullYear(); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="hello"> </div>
fuente
Esto es lo que hice para la API de Instagram. marca de tiempo convertida con el método de fecha multiplicando por 1000 y luego agregando todas las entidades individualmente como (año, meses, etc.)
creó el nombre de la lista de meses personalizado y se asignó con el
getMonth()
método que devuelve el índice del mes.convertStampDate(unixtimestamp){ // Unixtimestamp // Months array var months_arr = ['January','February','March','April','May','June','July','August','September','October','November','December']; // Convert timestamp to milliseconds var date = new Date(unixtimestamp*1000); // Year var year = date.getFullYear(); // Month var month = months_arr[date.getMonth()]; // Day var day = date.getDate(); // Hours var hours = date.getHours(); // Minutes var minutes = "0" + date.getMinutes(); // Seconds var seconds = "0" + date.getSeconds(); // Display date time in MM-dd-yyyy h:m:s format var fulldate = month+' '+day+'-'+year+' '+hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2); // filtered fate var convdataTime = month+' '+day; return convdataTime; }
Llamar con argumento de sello
convertStampDate('1382086394000')
y eso es.
fuente
Mi variante ES6 produce una cadena como esta
2020-04-05_16:39:45.85725
. No dude en modificar la declaración de devolución para obtener el formato que necesita:const getDateStringServ = timestamp => { const plus0 = num => `0${num.toString()}`.slice(-2) const d = new Date(timestamp) const year = d.getFullYear() const monthTmp = d.getMonth() + 1 const month = plus0(monthTmp) const date = plus0(d.getDate()) const hour = plus0(d.getHours()) const minute = plus0(d.getMinutes()) const second = plus0(d.getSeconds()) const rest = timestamp.toString().slice(-5) return `${year}-${month}-${date}_${hour}:${minute}:${second}.${rest}` }
fuente
Para calcular la fecha en la marca de tiempo a partir de la fecha dada
// Para obtener la fecha de la marca de tiempo de la fecha normal : En formato - 1560105000000
// la fecha de entrada puede tener el formato: "2019-06-09T18: 30: 00.000Z"
this.calculateDateInTimestamp = function (inputDate) { var date = new Date(inputDate); return date.getTime(); }
salida : 1560018600000
fuente