var date = "2012-01-18T16:03";
var date = new Date(date);
console.log(date.getMinutes());
console.log(date.getMinutes().length)
Esto devuelve 3.
- ¿Cómo hago que devuelva '03'?
- ¿Por qué
.length
regresa indefinido?
Intenté esto, pero no funcionó:
Si strlen == 1
entoncesnum = ('0' + num);
javascript
Mark Fondy
fuente
fuente
.getMinutes()
es un número entero, no se puede acceder.length
desde un número entero. Para lograr eso (no recomendado cuando se trata con fechas) es analizar el número en una cadena y luego verificar la longitud. Por ejemplo:date.getMinutes().toString().length
Respuestas:
fuente
<10?'0':''
?Vaya, estas respuestas no son geniales, incluso la publicación superior subió. Aquí está la conversión int / string entre navegadores y limpiadores. Además, mi consejo es que no use una 'fecha' de nombre de variable con código como
date = Date(...)
donde depende en gran medida de mayúsculas y minúsculas en el idioma (funciona, pero es arriesgado cuando trabaja con el código del servidor / navegador en diferentes idiomas con diferentes reglas) . Asumiendo la fecha de JavaScript en una varcurrent_date
:La técnica consiste en tomar los 2 caracteres más a la derecha
(slice(-2))
de "0" antepuestos al valor de cadena degetMinutes()
. Entonces:y
fuente
Otra forma corta es llenar los minutos con un cero inicial usando:
Significado: Haga que la cadena tenga dos caracteres de largo, si falta un carácter, configúrelo
0
en esta posición.Ver documentos en str.padStart (targetLength, padString)
fuente
Elegante función ES6 para formatear una fecha en
hh:mm:ss
:fuente
Me gustaría proporcionar una solución más ordenada al problema si puedo. La respuesta aceptada es muy buena. Pero lo habría hecho así.
Ahora si quieres usar esto.
fuente
Yo sugiero:
Es una función llamada menos. Siempre es bueno pensar en el rendimiento. Es corto también;
fuente
debe verificar si es menor que 10 ... no busca la longitud del mismo, porque este es un número y no una cadena
fuente
Otra opción:
fuente
substr
. w3schools.com/jsref/jsref_substr.aspUsando la API de internacionalización ECMAScript, más información :
fuente
.length
no está definido porquegetMinutes
devuelve un número, no una cadena. Los números no tienen unalength
propiedad. Podrías hacerlovar m = "" + date.getMinutes();
para convertirlo en una cadena, luego verifique la longitud (querría verificar
length === 1
, no 0).fuente
Los números no tienen una longitud, pero puede convertir fácilmente el número en una cadena, verificar la longitud y luego anteponer el 0 si es necesario:
fuente
No veo ninguna respuesta de ES6 aquí, así que agregaré una usando el formato StandardJS
fuente
Supongo que necesitarías el valor como cadena. Puedes usar el siguiente código. Siempre regresará y le dará los minutos de dos dígitos como cadena.
Espero que esto ayude.
fuente
Usualmente uso este código:
Es bastante similar a la respuesta aceptada de @ogur, pero no concatena una cadena vacía en el caso de que 0 no sea necesario. No estoy seguro de que sea mejor. ¡Solo otra forma de hacerlo!
fuente
puedes usar moment js:
ejemplo:
moment('2019-10-29T21:08').format('mm') ==> 08
espero que ayude a alguien
fuente
nuevo en JS, así que esto fue muy útil para la mayoría de las personas que vieron este problema también, así que así es como lo hice para mostrar en el div llamado "class =" min "
espero que ayude a alguien
fuente
¿Qué tal esto? ¡esto funciona para mi! :)
fuente
Otra opción para obtener minutos u horas de dos dígitos.
fuente
Para minutos de dos dígitos use:
new Date().toLocaleFormat("%M")
fuente
Si está utilizando AngularJS en su proyecto, simplemente inyecte $ filter y úselo como aquí:
También puede formatear la salida en la plantilla, más sobre los filtros aquí .
fuente