Cela m'étonne que l'objet Date de JavaScript n'implémente aucune fonction d'ajout d'aucune sorte.
Je veux simplement une fonction qui puisse le faire:
var now = Date.now();
var fourHoursLater = now.addHours(4);
function Date.prototype.addHours(h) {
// how do I implement this?
}
Je voudrais simplement quelques indications dans une direction.
Dois-je faire une analyse de chaîne?
Puis-je utiliser setTime?
Que diriez-vous des millisecondes?
Comme ça:
new Date(milliseconds + 4*3600*1000 /*4 hrs in ms*/)?
Cela semble vraiment hackeux - et ça marche même?
javascript
datetime
Jeff Meatball Yang
la source
la source
Tester:
la source
var date = new Date(2012, 10, 22, 23, 0, 1); date.toString(); // Thu Nov 22 2012 23:00:01 GMT+0100 (CET) date.setHours(date.getHours() + 1); date.toString(); // Fri Nov 23 2012 00:00:01 GMT+0100 (CET)
Cela fonctionne également très bien avec setMinutes ()Le code ci-dessous est d'ajouter 4 heures à ce jour (exemple la date du jour)
Cela ne provoquera pas d'erreur si vous essayez d'ajouter 4 à 23 (voir la documentation ):
la source
setTime
ousetUTCHour
.Il est probablement préférable de rendre la méthode addHours immuable en renvoyant une copie de l'objet Date plutôt que de muter son paramètre.
De cette façon, vous pouvez chaîner un tas d'appels de méthode sans vous soucier de l'état.
la source
add*
est couramment utilisé pour muter l'objet lui-même.add
estDateTime
beaucoup utilisé dans la classe de framework .NET , et a la même signification que le+
(plus) en mathématiques.currentDate.addHours(1)
<- De mon instinct de programmation, je m'attends à ce que lacurrentDate
valeur change, mais dans votre implémentation, ce ne serait pas le cas. Quant à savoir pourquoi jeadd
La version suggérée par kennebec échouera lors du passage vers ou depuis l'heure d'été, car c'est le numéro de l'heure qui est défini.
ajoutera des
h
heures aux particularitésthis
indépendantes du système de temps. La méthode de Jason Harwig fonctionne également.la source
Vous pouvez utiliser la bibliothèque momentjs http://momentjs.com/ .
la source
Je pense également que l'objet d'origine ne doit pas être modifié. Donc, pour économiser de la main-d'œuvre future, voici une solution combinée basée sur les réponses de Jason Harwig et Tahir Hasan :
la source
Il y a un ajout dans la bibliothèque Datejs .
Et voici les méthodes de date JavaScript . kennebec a judicieusement mentionné getHours () et setHours ();
la source
Vérifiez si ce n'est pas déjà défini, sinon définissez-le sur le prototype Date:
la source
Une autre façon de gérer cela est de convertir la date en unixtime (epoch), puis d'ajouter l'équivalent en (milli) secondes, puis de la reconvertir. De cette façon, vous pouvez gérer les transitions de jour et de mois, comme ajouter 4 heures à 21, ce qui devrait se traduire par le lendemain, 01h00.
la source
Pour une simple fonction d'ajout / soustraction d'heure / minute en javascript, essayez ceci:
Cela peut être utilisé sans paramètres pour obtenir l'heure actuelle
ou avec des paramètres pour obtenir l'heure avec les minutes / heures ajoutées
même le temps négatif fonctionne
cette fonction renvoie un tableau de
la source
SPRBRN est correct. Afin de prendre en compte le début / la fin du mois et de l'année, vous devez vous convertir en Epoch et inversement.
Voici comment procéder:
ou faites-le sur une seule ligne (où les noms de variables sont les mêmes que ci-dessus:
la source
C'est un moyen facile d'obtenir une valeur de données incrémentée ou décrémentée.
la source
Un peu en désordre, mais ça marche!
Étant donné un format de date comme celui-ci: 2019-04-03T15: 58
Votre sortie serait: 2019-04-03T16: 58
la source