yyyy parse change javascript date time date-format time-format

parse - Convertir una marca de tiempo Unix a tiempo en JavaScript



javascript datetime format (24)

Aquí está la solución de una sola línea más corta para formatear segundos como hh:mm:ss :

/** * Convert seconds to time string (hh:mm:ss). * * @param Number s * * @return String */ function time(s) { return new Date(s * 1e3).toISOString().slice(-13, -5); } console.log( time(12345) ); // "03:25:45"

Método Date.prototype.toISOString() devuelve la hora en formato ISO 8601 extendido simplificado, que siempre tiene 24 o 27 caracteres (es decir, YYYY-MM-DDTHH:mm:ss.sssZ o ±YYYYYY-MM-DDTHH:mm:ss.sssZ respectivamente). La zona horaria es siempre cero desplazamiento UTC.

NB: esta solución no requiere bibliotecas de terceros y es compatible con todos los navegadores modernos y motores de JavaScript.

Estoy almacenando el tiempo en una base de datos MySQL como una marca de tiempo de Unix y eso se envía a algún código JavaScript. ¿Cómo podría sacarme el tiempo?

Por ejemplo, en formato HH / MM / SS.


Basado en la respuesta de @shomrat, aquí hay un fragmento que escribe automáticamente fecha y hora como esta (un poco similar a la fecha de para respuestas: answered Nov 6 ''16 at 11:51 ):

today, 11:23

o

yersterday, 11:23

o (si es diferente pero el mismo año que hoy)

6 Nov, 11:23

o (si es un año más que hoy)

6 Nov 2016, 11:23

function timeConverter(t) { var a = new Date(t * 1000); var today = new Date(); var yesterday = new Date(Date.now() - 86400000); var months = [''Jan'', ''Feb'', ''Mar'', ''Apr'', ''May'', ''Jun'', ''Jul'', ''Aug'', ''Sep'', ''Oct'', ''Nov'', ''Dec'']; var year = a.getFullYear(); var month = months[a.getMonth()]; var date = a.getDate(); var hour = a.getHours(); var min = a.getMinutes(); if (a.setHours(0,0,0,0) == today.setHours(0,0,0,0)) return ''today, '' + hour + '':'' + min; else if (a.setHours(0,0,0,0) == yesterday.setHours(0,0,0,0)) return ''yesterday, '' + hour + '':'' + min; else if (year == today.getFullYear()) return date + '' '' + month + '', '' + hour + '':'' + min; else return date + '' '' + month + '' '' + year + '', '' + hour + '':'' + min; }


El problema con las soluciones mencionadas anteriormente es que si la hora, el minuto o el segundo tienen solo un dígito (es decir, 0-9), la hora sería incorrecta, por ejemplo, podría ser 2: 3: 9, pero debería ser 02: 03:09.

De acuerdo con esta página , parece ser una mejor solución para usar el método "toLocaleTimeString" de Date.


En el momento debes usar la marca de tiempo de Unix:

var dateTimeString = moment.unix(1466760005).format("DD-MM-YYYY HH:mm:ss");


JavaScript funciona en milisegundos, por lo que primero tendrá que convertir la marca de tiempo UNIX de segundos a milisegundos.

var date = new Date(UNIX_Timestamp * 1000); // Manipulate JavaScript Date object here...


La marca de tiempo de UNIX es el número de segundos desde las 00:00:00 UTC del 1 de enero de 1970 (según Wikipedia ).

El argumento del objeto Date en Javascript es el número de milisegundos desde las 00:00:00 UTC del 1 de enero de 1970 (según la documentación de W3Schools Javascript ).

Vea el código de abajo por ejemplo:

function tm(unix_tm) { var dt = new Date(unix_tm*1000); document.writeln(dt.getHours() + ''/'' + dt.getMinutes() + ''/'' + dt.getSeconds() + '' -- '' + dt + ''<br>''); } tm(60); tm(86400);

da:

1/1/0 -- Thu Jan 01 1970 01:01:00 GMT+0100 (Central European Standard Time) 1/0/0 -- Fri Jan 02 1970 01:00:00 GMT+0100 (Central European Standard Time)


La solución moderna que no necesita una biblioteca de 40 KB:

Intl.DateTimeFormat es la forma no culturalmente imperialista de formatear una fecha / hora.

// Setup once var options = { //weekday: ''long'', //month: ''short'', //year: ''numeric'', //day: ''numeric'', hour: ''numeric'', minute: ''numeric'', second: ''numeric'' }, intlDate = new Intl.DateTimeFormat( undefined, options ); // Reusable formatter var timeStamp = 1412743273; console.log( intlDate.format( new Date( 1000 * timeStamp ) ) );


Mi marca de tiempo se está recuperando de un servidor PHP. He intentado todos los métodos anteriores y no funcionó. Entonces me encontré con un tutorial que funcionó:

var d =val.timestamp; var date=new Date(+d); //NB: use + before variable name console.log(d); console.log(date.toDateString()); console.log(date.getFullYear()); console.log(date.getMinutes()); console.log(date.getSeconds()); console.log(date.getHours()); console.log(date.toLocaleTimeString());

Los métodos anteriores generarán estos resultados.

1541415288860 Mon Nov 05 2018 2018 54 48 13 1:54:48 PM

Hay un montón de métodos que funcionan perfectamente con las marcas de tiempo. No puedo enumerarlos a todos


Otra forma - a partir de una fecha ISO 8601 .

var timestamp = 1293683278; var date = new Date(timestamp*1000); var iso = date.toISOString().match(/(/d{2}:/d{2}:/d{2})/) alert(iso[1]);


Pensaría en usar una biblioteca como Moment.js , que hace esto realmente simple:

Basado en una marca de tiempo Unix:

var timestamp = moment.unix(1293683278); console.log( timestamp.format("HH/mm/ss") );

Basado en una cadena de fecha de MySQL:

var now = moment("2010-10-10 12:03:15"); console.log( now.format("HH/mm/ss") );


Preste atención al problema cero con algunas de las respuestas. Por ejemplo, la marca de tiempo 1439329773 se convertiría por error a 12/08/2015 0:49 .

Yo sugeriría usar lo siguiente para superar este problema:

var timestamp = 1439329773; // replace your timestamp var date = new Date(timestamp * 1000); var formattedDate = (''0'' + date.getDate()).slice(-2) + ''/'' + (''0'' + (date.getMonth() + 1)).slice(-2) + ''/'' + date.getFullYear() + '' '' + (''0'' + date.getHours()).slice(-2) + '':'' + (''0'' + date.getMinutes()).slice(-2); console.log(formattedDate);

Ahora resulta en:

12/08/2015 00:49


Puede usar la siguiente función para convertir su marca de hora a formato HH:MM:SS :

var convertTime = function(timestamp, separator) { var pad = function(input) {return input < 10 ? "0" + input : input;}; var date = timestamp ? new Date(timestamp * 1000) : new Date(); return [ pad(date.getHours()), pad(date.getMinutes()), pad(date.getSeconds()) ].join(typeof separator !== ''undefined'' ? separator : '':'' ); }

Sin pasar un separador, usa : como el separador (predeterminado):

time = convertTime(1061351153); // --> OUTPUT = 05:45:53

Si desea utilizar / como separador, simplemente páselo como segundo parámetro:

time = convertTime(920535115, ''/''); // --> OUTPUT = 09/11/55

Manifestación

var convertTime = function(timestamp, separator) { var pad = function(input) {return input < 10 ? "0" + input : input;}; var date = timestamp ? new Date(timestamp * 1000) : new Date(); return [ pad(date.getHours()), pad(date.getMinutes()), pad(date.getSeconds()) ].join(typeof separator !== ''undefined'' ? separator : '':'' ); } document.body.innerHTML = ''<pre>'' + JSON.stringify({ 920535115 : convertTime(920535115, ''/''), 1061351153 : convertTime(1061351153, '':''), 1435651350 : convertTime(1435651350, ''-''), 1487938926 : convertTime(1487938926), 1555135551 : convertTime(1555135551, ''.'') }, null, ''/t'') + ''</pre>'';

Véase también este violín .


Si desea convertir la duración del tiempo de Unix a horas, minutos y segundos reales, puede usar el siguiente código:

var hours = Math.floor(timestamp / 60 / 60); var minutes = Math.floor((timestamp - hours * 60 * 60) / 60); var seconds = Math.floor(timestamp - hours * 60 * 60 - minutes * 60 ); var duration = hours + '':'' + minutes + '':'' + seconds;


Soy parcial a la biblioteca Date.format() Jacob Wright, que implementa el formato de fecha de JavaScript en el estilo de la función date() de PHP.

new Date(unix_timestamp * 1000).format(''h:i:s'')


Usando Moment.js , puede obtener una fecha y hora como esta:

var dateTimeString = moment(1439198499).format("DD-MM-YYYY HH:mm:ss");

Y solo puedes obtener tiempo usando esto:

var timeString = moment(1439198499).format("HH:mm:ss");


Utilizar:

var s = new Date(1504095567183).toLocaleDateString("en-US") // expected output "8/30/2017"

y por tiempo:

var s = new Date(1504095567183).toLocaleTimeString("en-US") // expected output "3:19:27 PM"`

vea Date.prototype.toLocaleDateString()


Ver Convertidor de fecha / época .

Necesitas ParseInt , de lo contrario no funcionaría:

if (!window.a) window.a = new Date(); var mEpoch = parseInt(UNIX_timestamp); if (mEpoch < 10000000000) mEpoch *= 1000; ------ a.setTime(mEpoch); var year = a.getFullYear(); ... return time;


function timeConverter(UNIX_timestamp){ var a = new Date(UNIX_timestamp * 1000); var months = [''Jan'',''Feb'',''Mar'',''Apr'',''May'',''Jun'',''Jul'',''Aug'',''Sep'',''Oct'',''Nov'',''Dec'']; var year = a.getFullYear(); var month = months[a.getMonth()]; var date = a.getDate(); var hour = a.getHours(); var min = a.getMinutes(); var sec = a.getSeconds(); var time = date + '' '' + month + '' '' + year + '' '' + hour + '':'' + min + '':'' + sec ; return time; } console.log(timeConverter(0));


function getDateTimeFromTimestamp(unixTimeStamp) { var date = new Date(unixTimeStamp); return (''0'' + date.getDate()).slice(-2) + ''/'' + (''0'' + (date.getMonth() + 1)).slice(-2) + ''/'' + date.getFullYear() + '' '' + (''0'' + date.getHours()).slice(-2) + '':'' + (''0'' + date.getMinutes()).slice(-2); } var myTime = getDateTimeFromTimestamp(1435986900000); console.log(myTime); // output 01/05/2000 11:00


// Create a new JavaScript Date object based on the timestamp // multiplied by 1000 so that the argument is in milliseconds, not seconds. var date = new Date(unix_timestamp*1000); // Hours part from the timestamp var hours = date.getHours(); // Minutes part from the timestamp var minutes = "0" + date.getMinutes(); // Seconds part from the timestamp var seconds = "0" + date.getSeconds(); // Will display time in 10:30:23 format var formattedTime = hours + '':'' + minutes.substr(-2) + '':'' + seconds.substr(-2);

Para obtener más información sobre el objeto Date, consulte MDN o la especificación ECMAScript 5 .


// Format value as two digits 0 => 00, 1 => 01 function twoDigits(value) { if(value < 10) { return ''0'' + value; } return value; } var date = new Date(unix_timestamp*1000); // display in format HH:MM:SS var formattedTime = twoDigits(date.getHours()) + '':'' + twoDigits(date.getMinutes()) + '':'' + twoDigits(date.getSeconds());


function getDateTime(unixTimeStamp) { var d = new Date(unixTimeStamp); var h = (d.getHours().toString().length == 1) ? (''0'' + d.getHours()) : d.getHours(); var m = (d.getMinutes().toString().length == 1) ? (''0'' + d.getMinutes()) : d.getMinutes(); var s = (d.getSeconds().toString().length == 1) ? (''0'' + d.getSeconds()) : d.getSeconds(); var time = h + ''/'' + m + ''/'' + s; return time; } var myTime = getDateTime(1435986900000); console.log(myTime); // output 01/15/00


function getTIMESTAMP() { var date = new Date(); var year = date.getFullYear(); var month = ("0"+(date.getMonth()+1)).substr(-2); var day = ("0"+date.getDate()).substr(-2); var hour = ("0"+date.getHours()).substr(-2); var minutes = ("0"+date.getMinutes()).substr(-2); var seconds = ("0"+date.getSeconds()).substr(-2); return year+"-"+month+"-"+day+" "+hour+":"+minutes+":"+seconds; } //2016-01-14 02:40:01


function timeConverter(UNIX_timestamp){ var a = new Date(UNIX_timestamp*1000); var hour = a.getUTCHours(); var min = a.getUTCMinutes(); var sec = a.getUTCSeconds(); var time = hour+'':''+min+'':''+sec ; return time; }