Tengo una marca de tiempo de Unix, y estoy tratando de convertirla en una fecha de calendario como MM/DD/YYYY
. Hasta ahora, tengo esto:
$(document).ready(function() {
var value = $("#unixtime").val(); //this retrieves the unix timestamp
var dateString = moment(value).calendar();
alert(dateString);
});
Cuando intento imprimir la fecha del calendario, la ventana dice "Fecha inválida". ¿Puede alguien ayudarme?
javascript
datetime
momentjs
Andrés
fuente
fuente
calendar
función es agradable ( documentos aquí ), pero no en el formato que solicitó el OP.monent(number)
espera una marca de tiempo Unix en mili segundos (que es consistente con elDate
objeto), mientras que la marca de tiempo Unix es en cuestión de segundos por defecto. Por lo tanto, también podría hacerlo enmoment(value*1000)
lugar de hacerlomoment.unix(value)
, pero usarlounix
es más claro.La marca de tiempo UNIX es un recuento de segundos desde 1970, por lo que debe convertirlo al objeto JS Date:
fuente
Moment.js proporciona formatos localizados que se pueden usar.
Aquí hay un ejemplo:
fuente
fuente
Solo eso
fuente
Puede ser un poco tarde, pero para nuevos problemas como este, uso este código:
Puede cambiar el formato para que coincida con sus necesidades y también agregar una zona horaria como esta:
fuente
x
para la marca de tiempo ms unix. Documentación aquíLo arreglé como este ejemplo.
fuente
Hay un modo estricto y un modo de perdón .
Si bien el modo estricto funciona mejor en la mayoría de las situaciones, el modo de perdón puede ser muy útil cuando el formato de la cadena que se pasa al momento puede variar.
En una versión posterior, el analizador usará de manera predeterminada el modo estricto. El modo estricto requiere que la entrada del momento coincida exactamente con el formato especificado, incluidos los separadores. El modo estricto se establece pasando true como el tercer parámetro a la función de momento.
Un escenario común en el que el modo de perdón es útil es en situaciones en las que una API de terceros proporciona la fecha, y el formato de fecha para esa API podría cambiar. Suponga que una API comienza enviando fechas en formato 'AAAA-MM-DD', y luego cambia al formato 'MM / DD / AAAA'.
En modo estricto, el siguiente código da como resultado que se muestre 'Fecha inválida':
En el modo indulgente con una cadena de formato, obtiene una fecha incorrecta:
otra forma sería
fuente
Esta función crea la fecha de la marca de tiempo:
fuente
fuente
fuente