parseexact - javascript get first and last day of the week
¿Por qué javascript getMonth cuenta desde 0 y getDate cuenta desde 1? (3)
Si quiere decir que es inconsistente, debe preguntar al creador de la especificación del lenguaje. De acuerdo con esta page JavaScript
se basa en ECMAScript
(EDITAR: vea el comentario de @MichaelGeary).
Y cuando lea de la página 165 here , verá que todo funciona exactamente como está diseñado.
Para ti puede ser inconsistente. Para mí es más bien una característica: los valores basados en 0 le permiten acceder a Array
inmediato sin hacer cálculos (consulte la respuesta de @ Christopher). En el caso del día del mes, realmente no se puede acceder a ningún Array
. Será extraño tener una Array
de nombres de días del mes ... así:
var namesOfDays = [
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", // and again at least 4 times ...
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",
"Sunday", "Monday", "Tuesday"
]
Esta pregunta es puramente para satisfacer mi curiosidad.
En el objeto Fecha de JavaScript, cuando llama a getMonth()
, devuelve el mes pero cuenta desde 0.
0 = January
1 = February
...
Pero cuando llamas a getDate()
comienza a contar desde 1
1 = 1
2 = 2
...
¿Por qué la inconsistencia?
Supongo que es porque sería más fácil hacer referencia en una serie de nombres, es decir,
var months = ["January", "February", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December"];
var d = new Date();
var namedMonth = months[d.getMonth()];
Si getMonth()
devolvió 1-12
, entonces los programadores tendrían que hacer d.getMonth()-1
cada vez que quisieran un mes elegante llamado.
Los días del mes no tienen "nombres" específicos per se. El getDate()
devuelve 1-(28-31)
. Por lo general, simplemente nos referimos a ellos por su número.
El mismo concepto que getMonth()
aplica a getDay()
, que devuelve 0-6
según el día de la semana.
var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
var namedDay = days[d.getDay()];
Todo esto devuelve algo como:
console.log("Month: month[" + d.getMonth() + "]: " + namedMonth);
//Month: month[3]: April
console.log("Day: days[" + d.getDay() + "]: " + namedDay);
// Day: days[4] : Thursday
Date.prototype.getDate ()
Devuelve el día del mes (1-31) para la fecha especificada según la hora local.
Un objeto Fecha contiene un número que representa un instante particular en el tiempo dentro de un milisegundo. Por ejemplo, si especifica 150 segundos, JavaScript redefine ese número en dos minutos y 30 segundos.
Cuando implemente métodos en Javascript para encontrar la diferencia entre dos tiempos especificados en milisegundos, deberá devolver una date
que debe ser greater than 0
por razones obvias.
var startTime = new Date(''1/1/1990'');
var startMsec = startTime.getMilliseconds();
startTime.setTime(5000000);
var elapsed = (startTime.getTime() - startMsec) / 1000;
document.write(elapsed);
// Output: 5000
Como se explica por "SomeShinyObject" que
var months = ["January", "February", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December"];
Ayuda a hacer referencia a ellos a través del índice de matriz.
Por getDay
tanto, getDay
, getHours
, getMonths
comienza desde 0.