Ajouter des jours à la Date de JavaScript
Comment ajouter des jours à courant Date
à l'aide de JavaScript. N'JavaScript ont une fonction intégrée comme .Net AddDay
?
Vous devez vous connecter pour publier un commentaire.
Comment ajouter des jours à courant Date
à l'aide de JavaScript. N'JavaScript ont une fonction intégrée comme .Net AddDay
?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez en créer un avec:-
JS:
Ce prend soin d'incrémenter automatiquement le mois si nécessaire. Par exemple:
8/31 + 1 jour sera 9/1.
Le problème avec l'aide de
setDate
directement, c'est que c'est un mutateur et ce genre de chose, il vaut mieux éviter. L'ECMA a jugé bon de traiterDate
comme une mutable une classe plutôt qu'à une structure immuable.days
nombre de jours de 24 heures. AjustergetDate
/setDate
/days
àgetTime
/setTime
/days * 24*60*60*1000
si vous voulez le temps de détecter le changement d'heure.Date.prototype.addDays=function(d){return new Date(this.valueOf()+864E5*d);};
864E5
pour une raison que je préfère écrire24*60*60
dans mon code 🙂d = new Date( 2016, 10, 4 )
d.addDays(3)
addDays(3.0)
?@AnthonyWJones24*60*60*1000
Réponse Correcte:
Réponse Incorrecte:
Cette réponse parfois donne le résultat correct mais très souvent, renvoie l'erreur de l'année et le mois. La seule fois que la réponse œuvres, c'est quand la date à laquelle vous ajoutez des jours pour se le courant de l'année et le mois.
Preuve /Exemple
Cochez cette JsFiddle
JS:
CSS:
HTML:
"mm/dd/yyyy"
new Date(date.getTime());
est mieux, mais je ne pense pas qu'il y est tous les cas oùnew Date(date)
donnera une réponse incorrecte en raison de la conversion de chaîne. Si quelqu'un peut fournir un exemple que je voudrais le voir. Comment fou serait-il pour un constructeur de date à ne pas lire la chaîne de la même manière, il est mis en forme par défaut. Ce que je comprends, la locale de l'utilisateur, le fuseau horaire et date réglages du format ne devrait avoir aucune incidence sur l'exactitude de cette fonction.1st of June
avec1 day
et l'obtention de la2nd of May
qui a été me rend fou...daysToAdd = 10;
date = new Date(Date.now() + (1000 * 60 * 60 * 24 * daysToAdd));
Être prudent, parce que cela peut être difficile. Lors de la définition de "demain", il ne fonctionne que parce qu'elle est la valeur actuelle correspond à l'année et le mois pour "aujourd'hui". Toutefois, la définition d'une date comme "32" normalement va toujours très bien fonctionner pour le déplacer pour le mois prochain.
var d = new Date(); d.setDate( d.getDate() + 1 );
?getDate()
retourne le jour de l'année. Puis, appelantsetDate
définit le jour dans le courant de l'année. Donc c'est PAS une bonne solution générale. @AnthonyWJones réponse en fait, il fonctionne correctement.Date
objets avecnew
échouera si elle est effectuée seulement lors de la commutation entre les mois.today.getDate()
serait de retour le dernier jour du mois, tandis quetomorrow
s mois, ce serait déjà le mois prochain. Donctomorrow
seraient complètement faux.var d = new Date(2015,11,30);d.setDate(d.getDate() + 370)
donne 3 janvier 2017 qui traverse les 2 ans.Ma solution est simple:
cette solution n'a pas de problème avec l'heure d'été. Aussi, on peut ajouter/sous n'importe quelle compensation pour les années, les mois, les jours etc.
est bon code.
setDate
.Ces réponses semblent confus pour moi, je préfère:
getTime() nous donne le nombre de millisecondes depuis 1970, et 86400000 est le nombre de millisecondes dans une journée.
Par conséquent, ms contient millisecondes pour la date souhaitée.
À l'aide de l'ordre de la milliseconde constructeur donne la date souhaitée objet.
new Date(new Date('11/4/2012').getTime() + 86400000)
Essayer
À l'aide de setDate() pour ajouter une date l'habitude de résoudre votre problème, essayez d'ajouter quelques jours à un mois de Février, si vous essayez d'ajouter de nouveaux jours pour elle, il ne la conséquence de ce qui vous attend.
setDate()
? Est-ce cela: stackoverflow.com/questions/5497637/...Juste passé du temps à essayer de comprendre ce que l'affaire était en rapport avec l'année n'ajoutant pas lorsque, en suivant l'exemple des exemples ci-dessous.
Si vous souhaitez simplement ajouter les n jours de la date à laquelle vous avez, vous êtes mieux de simplement aller de l':
ou la longwinded version
Cela aujourd'hui/demain stuff est source de confusion. Par réglage de la date actuelle dans votre nouvelle variable de date à vous gâchera la valeur de l'année. si vous travaillez à partir de la date d'origine, vous ne serez pas.
Si vous le pouvez, utilisez moment.js. JavaScript n'est pas un très bon natif de la date/heure de méthodes. L'exemple suivant est un Moment de la syntaxe:
JS:
HTML:
Référence: http://momentjs.com/docs/#/manipulating/add/
J'ai créé ces extensions de la nuit dernière:
vous pouvez transmettre des valeurs positives ou négatives;
exemple:
CodePen
JS:
La solution la plus simple.
JS:
Merci Jason pour votre réponse qui fonctionne comme prévu, voici un mix à partir de votre code et le format pratique de AnthonyWJones :
La fin de la partie,
mais si vous utilisezil y a un excellent plugin appelé Moment:jQuery
puishttp://momentjs.com/
http://momentjs.com/docs/#/manipulating/
Et beaucoup d'autres bonnes choses là!
Edit: jQuery référence supprimés grâce à aikeru commentaire
Sans l'aide de la deuxième variable, vous pouvez remplacer 7 avec votre prochain x jours:
Vieux, je sais, mais parfois j'aime ceci:
Date.prototype.addDays = function(days) {return new Date(this.getTime() + (864e5 * days));};
Mozilla docs pour setDate() ne pas indiquer qu'il va traiter à la fin du mois de scénarios.
Voir https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date
setDate()
C'est pourquoi j'utilise setTime() quand j'ai besoin d'ajouter des jours.
- Je utiliser quelque chose comme:
Fonctionne avec jour gain de temps:
Fonctionne avec la nouvelle année:
Il peut être paramétrées:
Je crois que je vais donner une réponse ainsi:
Personnellement, j'aime tenter d'éviter gratuité, de la déclaration de la variable, les appels de méthode, et le constructeur appelle, comme ils sont coûteux sur le rendement. (dans la limite du raisonnable, bien sûr)
Je vais laisser cela comme juste un commentaire en vertu de la Réponse donnée par @AnthonyWJones mais il se ravisa.
Permettra de respect de l'heure d'été. De sens que si vous ajoutez un nombre de jours de la croix de l'heure d'été, l'heure affichée (heure) va changer pour refléter cela.
Exemple:
Nov 2, 2014 02:00 a la fin de l'heure d'été.
Si vous êtes à la recherche pour retenir le temps, entre l'heure d'été (donc 10:30 10:30)...
Donc, maintenant que vous avez...
Non, javascript n'a pas une fonction intégrée, mais
vous pouvez utiliser une simple ligne de code
J'ai eu des problèmes de l'heure d'été avec la solution proposée.
En utilisant
getUTCDate
/setUTCDate
au lieu de cela, j'ai résolu mon problème.Je suis en utilisant la solution suivante.
Date a un constructeur qui accepte un int. Cet argument représente le total de millisecondes avant/après le 1er janvier 1970. Il possède également une méthode setTime qui fait la même chose sans la création d'un nouvel objet Date.
Ce que nous faisons ici est de les convertir jours en millisecondes et en ajouter cette valeur à la valeur fournie par getTime. Enfin, nous donner le résultat à ce Jour(en millisecondes), le constructeur ou l'setTime(en millisecondes) de la méthode.
now.setDate(now.getDate() + days);
gère automatiquement les modifications d'heure d'été. Et je dois corriger, les secondes intercalaires sont ignorés en JS horodateurs.Edit:
Au lieu de
setTime()
(ousetHours()
), vous pourriez le faire de cette façon:Vieux:
Au lieu d'utiliser
setTime()
vous pouvez utilisersetHours()
:Voir le JSFiddle...
d.setDate(d.getDate() + 1);
Code très simple pour ajouter de jours à la date en java script.
JS:
Vous pouvez utiliser du JavaScript, pas de jQuery requis:
Notre équipe considère date-pnr le meilleur de la bibliothèque dans cet espace. Il traite les dates que immuable (Moment.js ne sera probablement jamais adopter l'immuabilité), il est plus rapide, et peut être chargé de façon modulaire.
Il y a un setDate et un getDate méthode, qui vous permettent de faire quelque chose comme ceci :
Si vous voulez soustraire un certain nombre de jours et le format de votre date dans un format lisible par l'homme, vous devriez envisager de créer un personnalisé
DateHelper
objet qui ressemble à quelque chose comme ceci :JS:
(voir aussi ce Violon)
Prototype générique avec pas de variables, il s'applique sur un existant Date de valeur:
Pour ceux qui utilisent Angulaire:
Viens de faire:
essayer cette
pour soustraire 30 jours de l'utilisation
JS:
J'ai utilisé cette approche pour obtenir la bonne date dans une ligne pour obtenir le temps et un jour, ce que les gens disaient ci-dessus.
J'ai juste pensé que je voudrais construire une normale
(new Date())
:À l'aide du code ci-dessus, je peux maintenant faire tout ça dans
Date()
dans(new Date())
et il se comporte normalement.ou pour obtenir de l'
Date
objet:Je ne peux pas croire il n'y a pas de coupe n " coller solution dans ce fil après 5 ans!
DONC: Pour obtenir la même heure de la journée, quel que soit l'été interférences:
Là. Fait!
Vous pouvez créer votre propre fonction d'assistance ici
Par la voie, c'est la solution générique pour l'ajout de secondes ou de minutes ou les jours ce que vous voulez.
2.39 KO minimisé. Un fichier. https://github.com/rhroyston/clock-js
JS:
HTML:
Le moyen le plus facile de faire ceci est d'utiliser date-pnr bibliothèque.
La documentation est disponible dans ce lien ici. Vous pouvez également obtenir ce fait à l'aide de moment.js. Le lien de référence est ici
Espère que cela aide!
J'somme des heures et des jours...
js-joda est un super immuable la date et l'heure de la bibliothèque de javascript. C'est un port de Java 8 DateTime (JSR 310) qui est le successeur de la célèbre Joda-Time de la bibliothèque. Voici un extrait de son cheat-sheet.
Ajouter 17 jours pour aujourd'hui
Vous pouvez aussi construire la date souhaitée depuis maintenant plusieurs opérations à la fois.
Ou:
la même réponse: Comment ajouter le nombre de jours à la date d'aujourd'hui?