Quiero convertir la fecha a la marca de tiempo, mi entrada es 26-02-2012
. solía
new Date(myDate).getTime();
Dice NaN .. ¿Alguien puede decir cómo convertir esto?
javascript
date
time
selladurai
fuente
fuente
Date(myDate).getTime()
(lo que ha marcado como código) o la palabra "nuevo" antes de que fuera parte del código? Cuanto más esfuerzo pongas, mejores serán las respuestas que obtendrás.Respuestas:
Actualizar:
DEMO (Probado en Chrome, FF, Opera, IE y Safari).
fuente
NaN
. En Safari, debe usar el otro posible constructornew Date(year, month, day);
, en relación con este ejemplo:new Date(myDate[2], myDate[1], myDate[0]);
YYYY-MM-DD
), que se garantiza que sea entendidoDate()
y, en términos generales, es el formato más interoperable para las cadenas de fecha.new Date(newDate).getTime()
producirá una marca de tiempo en resolución de milisegundos.Math.floor(new Date(newDate).getTime() / 1000)
Pruebe esta función, utiliza el método Date.parse () y no requiere ninguna lógica personalizada:
fuente
fuente
este código refactorizado lo hará
esto funciona en todos los navegadores modernos excepto ie8-
fuente
Hay dos problemas aquí. Primero, solo puede llamar a getTime en una instancia de la fecha. Debe ajustar la nueva Fecha entre paréntesis o asignarla a la variable.
En segundo lugar, debe pasarle una cadena en un formato adecuado.
Ejemplo de trabajo:
fuente
Solo necesita invertir su dígito de fecha y cambiar
-
con,
:En tu caso:
La configuración regional de PS UK no importa aquí.
fuente
Number
de cadenas que comienzan con a0
es problemático en algunos motores: useparseInt
y especifique una raíz.fuente
Para convertir la fecha (ISO) a la marca de tiempo de Unix , terminé con una marca de tiempo de 3 caracteres más de lo necesario, por lo que mi año fue de alrededor de 50k ...
Tuve que dividirlo por 1000:
new Date('2012-02-26').getTime() / 1000
fuente
Para aquellos que desean tener una marca de tiempo legible en formato de,
yyyymmddHHMMSS
Ejemplo de uso: una extensión de archivo de respaldo.
/my/path/my.file.js.20190220
fuente
En caso de que hayas venido aquí buscando la marca de tiempo actual
TLDR:
fuente
Su cadena no está en un formato que el
Date
objeto está especificado para manejar . Tendrá que analizarlo usted mismo, usar una biblioteca de análisis de fechas como MomentJS o la anterior (y no se mantiene actualmente, por lo que puedo decir) DateJS , o masajearla en el formato correcto (por ejemplo,2012-02-29
) antes de preguntarDate
analizarla .Por qué está obteniendo
NaN
: cuando solicitanew Date(...)
manejar una cadena no válida, devuelve unDate
objeto que se establece en una fecha no válida (new Date("29-02-2012").toString()
devoluciones"Invalid date"
). LlamandogetTime()
a un objeto de fecha en este estado regresaNaN
.fuente
Date
objeto (que no tiene nada que ver con el DOM).fuente
Otros desarrolladores han proporcionado respuestas, pero a mi manera, puede hacerlo sobre la marcha sin crear ninguna función definida por el usuario de la siguiente manera:
fuente