Comment ajouter des semaines de date à l'aide de javascript?
Javascript n'est certainement pas mon point fort. J'ai essayé cela pour un couple de heures maintenant, et semblent être coincé avec le formatage de la date quelque part.
J'ai un formulaire où l'utilisateur le choix d'une date (jj/mm/aaaa) et puis cette date seront prises et 2 semaines seront ajoutés puis la date sera copié dans un autre champ de formulaire.
De ma dernière tentative ci-dessous n'est pas même l'ajout d'une date encore une simple copie de la date sélectionnée dans un champ de formulaire à l'autre, si je sélectionne '03/02/2012", il affiche 'Ven Mar 02 2012 00:00:00 GMT+0000 (GMT)", de sorte que sa sortie en format Américain ainsi que la date complète. Comment puis-je l'obtenir à mettre dans le même format et ajouter les 2 semaines?
function LicenceToOccupy(acceptCompletionDate)
{
var date1 = new Date(acceptCompletionDate);
document.frmAccept.acceptLicence.value = date1;
}
OriginalL'auteur JBoom | 2012-07-05
Vous devez vous connecter pour publier un commentaire.
Vous pouvez faire ceci :
Vous pouvez voir le violon ici.
Selon la la documentation en MDN
OriginalL'auteur Arvind Sridharan
Vous assignez
date1
être un objet Date qui représente la chaîne que vous avez pass. Ce que vous voyez dans leacceptLicense
valeur est latoString()
représentation de l'objet date (essayezalert(date1.toString())
pour le vérifier).À la sortie que vous le souhaitez, vous aurez à utiliser la concaténation de chaîne et le divers
Date
méthodes.En termes d'ajout de 2 semaines, vous devez ajouter les 14 jours de la date actuelle;
... cela permettra de gérer automatiquement le mois d'accroître etc.
En fin de compte, vous vous retrouverez avec;
N. B Mois en JavaScript sont 0 indexés (Jan = 0, Dec = 11), d'où la
+1
sur le mois.Modifier: À l'adresse de votre commentaire, vous devez construire
date
comme suit au lieu de cela, comme leDate
argument est censé être "Une chaîne de caractères représentant une RFC2822 ou ISO 8601 date." (voir ici).Je suppose qu'il a besoin de formatage en quelque sorte avant les 14 jours sont ajoutés? comme l' (date1.getDate() + 14) est en supposant que ses formaté sous la forme mm/jj/aaaa
l'argument est censé être "Une chaîne de caractères représentant une RFC2822 ou ISO 8601 date." (voir ici). Il pourrait être préférable d'utiliser les autres constructeur qui accepte de l'année, le mois, le jour comme des paramètres (voir mon édité réponse).
Merci Matt, le format est bien, mais maintenant l'ajout de 1 au mois fait désordre, même si c'est l'ajout d'un ou pas!
OriginalL'auteur Matt
Ceci devrait faire ce que vous cherchez.
OriginalL'auteur Toast
Pour analyser spécifiques
dd/mm/yyyy
format et l'incrément de jours avec 14 , vous pouvez faire quelque chose, comme la division des pièces, et de créer l'objet date avec y/m/d donnée specfically. (incrémenter les jours de droit de suite) Fournissant le séparateur est toujours-
, la suivante devrait fonctionner:OriginalL'auteur Me.Name
Juste un minimum de modifications pour porter un Toast à la réponse et vous obtiendrez exactement le format que vous êtes à la recherche pour jj/mm/aaaa:
OriginalL'auteur Franklin Rivero
Cela pourrait ne pas répondre à la question en soi, mais on peut trouver une solution avec ces formules.
6.04e+8
= 1 semaine en millisecondesDate.now()
= Maintenant en millisecondesDate.now() + 6.04e+8
= 1 semaine à partir d'aujourd'huiDate.now() + (6.04e+8 * 2)
= 2 semaines à partir d'aujourd'huinew Date( Date.now() + (6.04e+8 * 2) )
= Objet Date de 2 semaines à partir d'aujourd'huiOriginalL'auteur Luis
Tout il y !
Thiswill retour vous date1 comme une Chaîne de caractères dans le client de la convention de
Pour créer une nouvelle date date2 avec 2 semaines de plus (2semaines = 2*7*24*60*60 secondes):
toLocaleDateString
devrait, mais il n'est pas dans tous les navigateurs (par exemple Chrome ignore mon paramètres du système, comme le font les versions récentes, mais pas la version actuelle de Firefox).OriginalL'auteur Ricola3D