programar - obtener fecha y hora actual javascript
getMinutes() 0-9-¿cómo hacerlo con dos números? (16)
Elegante función ES6 para formatear una fecha en hh:mm:ss
:
const leadingZero = (num) => `0${num}`.slice(-2);
const formatTime = (date) =>
[date.getHours(), date.getMinutes(), date.getSeconds()]
.map(leadingZero)
.join('':'');
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é el
.length
vuelve indefinido?
Intenté esto, pero no funcionó:
Si strlen == 1
entonces num = (''0'' + num);
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:
var strMonth = '''' + date.getMinutes(); if (strMonth.length == 1) { strMonth = ''0'' + strMonth; }
Me gustaría proporcionar una solución más clara para el problema, si es posible. La respuesta aceptada es muy buena. Pero lo hubiera hecho así.
Date.prototype.getFullMinutes = function () {
if (this.getMinutes() < 10) {
return ''0'' + this.getMinutes();
}
return this.getMinutes();
};
Ahora si quieres usar esto.
console.log(date.getFullMinutes());
No veo ninguna respuesta ES6 aquí, así que agregaré una usando el formato StandardJS
// ES6 String formatting example
const time = new Date()
const tempMinutes = new Date.getMinutes()
const minutes = (tempMinutes < 10) ? `0${tempMinutes}` : tempMinutes
Otra forma corta es llenar los minutos con un cero inicial usando:
String(date.getMinutes()).padStart(2, "0");
Significado: Haga que la cuerda tenga dos caracteres de longitud, si falta una marca, configure 0
en esta posición.
Ver documentos en str.padStart (targetLength, padString)
Otra opción:
var dateTime = new Date();
var minutesTwoDigitsWithLeadingZero = ("0" + dateTime.getMinutes()).substr(-2);
Para el uso de minutos de dos dígitos: new Date().toLocaleFormat("%M")
Si está utilizando AngularJS en su proyecto, simplemente inyecte $ filter y úselo como aquí:
$filter(''date'')(value, ''HH:mm'')
También puede formatear el resultado en la plantilla, más información sobre los filtros here .
Supongo que necesitarías el valor como cadena. Puede usar el siguiente código. Siempre regresará le dará los minutos de dos dígitos como cadena.
var date = new Date(date);
var min = date.getMinutes();
if (min <10) {
min = ''0'' + min;
} else {
min = min + '''';
}
console.log (min);
Espero que esto ayude.
Usualmente uso este fragmento de código:
var start = new Date(timestamp),
startMinutes = start.getMinutes() < 10 ? ''0'' + start.getMinutes() : start.getMinutes();
Es bastante similar a la respuesta aceptada @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!
Yikes estas respuestas no son geniales, incluso la publicación superior se anotó. Aquí y''go, entre navegadores y una conversión int / string más limpia. Además, mi consejo es que no utilices un nombre de variable ''fecha'' con código como date = Date(...)
en la que dependes en gran medida de la distinción de mayúsculas y minúsculas (funciona, pero es arriesgado cuando trabajas con servidor / navegador código en diferentes idiomas con diferentes reglas). Asumiendo la fecha de javascript en un var current_date
:
mins = (''0''+current_date.getMinutes()).slice(-2);
La técnica consiste en tomar los 2 caracteres más a la derecha (slice(-2))
de "0" antes del valor de cadena de getMinutes()
. Asi que:
"0"+"12" -> "012".slice(-2) -> "12"
y
"0"+"1" -> "01".slice(-2) -> "01"
Yo sugiero:
var minutes = data.getMinutes();
minutes = minutes > 9 ? minutes : ''0'' + minutes;
es una llamada de función menos. Siempre es bueno pensar en el rendimiento. Es corto también;
deberías verificar si es menos de 10 ... no buscando la longitud del mismo, porque este es un número y no una cadena
.length
no está definido porque getMinutes
está devolviendo un número, no una cadena. los números no tienen una propiedad de length
. Podrías hacerlo
var m = "" + date.getMinutes();
para hacer una cadena, luego verifique la longitud (querría verificar la length === 1
, no 0).
$(".min").append( (date.getMinutes()<10?''0'':'''') + date.getMinutes() );
nuevo para JS, así que esto fue muy útil para la mayoría de las personas que miraban este problema también, así que así es como lo tengo que mostrar en el div llamado "class =" min "
Espero que ayude a alguien
var date = new Date("2012-01-18T16:03");
console.log( (date.getMinutes()<10?''0'':'''') + date.getMinutes() );