J'ai une forme avec un champ de date et un sélecteur de calendrier. Lorsque j'utilise cela, je l'ai saisi de la date à laquelle Je veux stocker la date comme Peut-être qu'il y a une meilleure approche? par exemple. Utilisation d'un champ d'entrée caché qui a la version correctement formatée de la date d'une manière ou d'une autre? p> jj / mm / yyyy code>. Cela fonctionne. P>
yyyymmdd code> cependant. Y a-t-il un moyen d'utiliser JavaScript pour reformater la date? Par exemple, je clique sur Soumettre, il reformate la date et effectue ensuite la date de soumission et écrit la date reformatée à la base de données? P>
3 Réponses :
Si vous chargez la valeur sous forme d'objet P> DATE CODE>, vous pouvez le formater comme vous le souhaitez. Cependant, veuillez envisager l'utilisation d'une bibliothèque qui résout déjà ce problème pour vous, comme Moment.js .
<input id="date-input" type="date">
<button onclick="formatDate()">format!</button>
<div id="date-output"></div>
"23/02/2020" Retourne "NAN / NAN / NAN". Pourquoi transformer une chaîne en différents types simplement pour transformer cela dans une chaîne avec les mêmes valeurs que vous avez commencées? ;-)
Que voulez-vous dire par exemple 23/02/2020 code> retours
nan / nan / nan code>? Cela fonctionne pour moi
Démontrer le code "fonctionnant" avec une image n'est pas beaucoup bien. ;-) Type d'entrée La date n'est pas prise en charge par tous les navigateurs et votre code ne produit pas le format requis de l'OP.
Que diriez-vous de cela? Cela devrait fonctionner en fonction des informations que vous avez données. À moins que votre salepicker renvoie la valeur comme autre chose ou dans un autre format. Pour cela, vous devrez intercepter le formulaire Soumettre par votre propre gestionnaire de clic et vérifier la valeur. P> p>
Pourquoi le bowvote? Cette solution fonctionne. Je l'ai essayé. Enlevez simplement le trait d'union si vous ne le voulez pas!
J'ai promis au frère parce que je travaille j'ai aussi vérifié. Il y a tellement de façons que nous puissions faire. Bon travail ..
Merci beaucoup @Ravipatidar! Il a posté l'entrée comme DD / mm / aaaa. Très probablement, il aura besoin de vérifier ce qui est réellement collecté lorsque la soumission est cliquée.
@ Rutwickgangurde - probablement parce que cette réponse est trop simple de loin et n'utilise pas la bibliothèque de date de jour i>.
@Robg je vois. Je pensais que le gardien est simple, c'est ce que nous programmons devraient essayer de viser. Si cela résout le problème, pourquoi avez-vous besoin de la bibliothèque de date? Quoi qu'il en soit, je suis à peu près sûr qu'un ONSUBMIT / ONCLICK est tenu de faire une sorte de prétraitement.
@ Rutwickgangurde-désolé, aurait dû utiliser la police sarcasmique correcte ... Vous êtes absolument correct, la simplicité est belle. :-)
J'ai eu ton sarcasme, Rob! J'expliquais simplement pourquoi je l'ai gardé simple, vous savez, l'habitude d'un programmeur d'analyser?
<input id="datefield" data-date-format="YYYY MM DD" type="date"> <button onclick="submit()">format!</button> <div id="output"></div>
Cela semble fonctionner parfaitement mais chaque fois que j'ouvre le formulaire que la boîte d'entrée indique toujours DD ---- aaaa. C'est bien pour ajouter un enregistrement, mais si j'étais mis à jour une, je m'attendrais à ce que la date pertinente soit là. Est-ce possible? Merci beaucoup jusqu'à présent.
Ne stockez pas une date comme chaîne. Stockez-le comme datatype de date (de préférence dans UTC). De cette façon, le format n'a pas d'importance lorsque vous le stockez, uniquement lors de l'affichage de la valeur.
En plus de ci-dessus (vous devez stocker comme date dans votre DB), créer une fonction Onsubmit et modifier la valeur de la date et créer une demande d'API, et dans votre formulaire appelez la fonction Onsubmit.
Quelle jQuery utilisée pour le calendrier de sélecteur de date? Parce que vous pouvez facilement modifier le format de date à l'aide de JavaScript.
Est-ce que cela répond à votre question? Comment formater une date javascript
@RoryMCcrossan Bon point. J'ai raté ça en répondant.