Les types d'entrée HTML5 sont excellents, le nouveau sélecteur de date intégré d'Opera est un jeu d'enfant, et Chrome a au moins pris en charge le nouveau type d'entrée avec une implémentation de roue de rotation.
Mais existe-t-il un moyen de définir la valeur par défaut du champ de date sur la date du jour? Avec Opera, je peux choisir «Aujourd'hui» dans le sélecteur de date, et dès que je clique sur l'un des boutons de pas dans Chrome, il incrémente / diminue la date d'aujourd'hui.
Je ne suis pas timide pour coder une solution à ce problème mineur, mais il me semble idiot que les deux navigateurs soient pleinement conscients de la date actuelle mais ne la feront pas automatiquement apparaître (au moins en tant qu'espace réservé).
Réponses:
Comme tout champ de saisie HTML, le navigateur le laissera vide sauf si une valeur par défaut est spécifiée avec l'
value
attribut.Malheureusement, HTML5 ne fournit pas de moyen de spécifier «aujourd'hui» dans l'
value
attribut (que je peux voir), seule une date valide RFC3339 comme2011-09-29
.TL; DR Utilisez le
YYYY-MM-DD
format de date ou il ne s'affichera pasla source
DateTime.now.strftime("%Y-%m-%d")
date('Y-m-d')
parce qu'il faut le zéro de tête?myDate.toLocaleDateString('en-CA')
fait l'affaireL'objet JavaScript Date fournit un support intégré suffisant pour le format requis pour éviter de le faire manuellement:
Ajoutez ceci pour une prise en charge correcte du fuseau horaire:
jQuery:
Pure JS:
la source
local.setMinutes(this.getMinutes() - this.getTimezoneOffset());
(comme cette réponse finira par arriver) d'abord, ensuite.valueAsDate
(qui exclut IE, Firefox, peut-être Safari, essentiellement tout sauf Chrome, Opera, Edge et certains navigateurs mobiles). Tout prend en charge lavalue
propriété que ma solution utilise, même lorsque les entrées de date reviennent aux entrées de texte dans les navigateurs non pris en charge, l'autre solution échouera ou échouera.input[type=datetime-local]
et en le changeant enslice(0,19)
HTHcela fonctionne pour moi:
https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement
la source
valueAsDate
. html.spec.whatwg.org/multipage/forms.html#dom-input-valueasdatevalueAsDate
surnew Date()
, la valeur des champs sera définie sur le 28/03/2018. Voir austinfrance.wordpress.com/2012/07/09/…Le code suivant fonctionne bien:
Notez que cela repose sur PHP.
la source
<?php echo date('Y-m-d', strtotime(date('Y/m/d'))); ?>
à<?php echo date('Y-m-d'); ?>
Vous pouvez remplir la valeur par défaut via javascript comme indiqué ici: http://jsfiddle.net/7LXPq/
Je mettrais probablement un peu plus de temps pour voir si le mois et la date sont des chiffres uniques et les préfixer avec le zéro supplémentaire ... mais cela devrait vous donner une idée.
EDIT: Ajout d'une vérification pour le zéro supplémentaire
la source
Suivez le format Ymd standard, si vous utilisez PHP
la source
HTML
JS
démo
Si vous ne voulez pas utiliser jQuery, vous pouvez faire quelque chose comme ça
HTML
JS
démo
la source
En HTML5 en tant que tel, il n'y a aucun moyen de définir la valeur par défaut du champ de date sur la date d'aujourd'hui? Comme indiqué dans d'autres réponses, la valeur peut être définie à l'aide de JavaScript, et c'est généralement la meilleure approche si vous souhaitez définir la valeur par défaut en fonction de la date actuelle de l'utilisateur lorsque la page est chargée.
HTML5 définit la
valueAsDate
propriété desinput type=date
éléments, et en l'utilisant, vous pouvez définir la valeur initiale directement à partir d'un objet créé par exemple parnew Date()
. Cependant, par exemple, IE 10 ne connaît pas cette propriété. (Il manque également un véritable soutieninput type=date
, mais c'est un problème différent.)Donc, en pratique, vous devez définir la
value
propriété, et elle doit être en notation conforme ISO 8601. De nos jours, cela peut être fait assez facilement, car nous pouvons nous attendre à ce que les navigateurs actuellement utilisés prennent en charge latoISOString
méthode:la source
= new Date().toISOString().split('T')[0];
Si vous faites quelque chose en rapport avec la date et l'heure dans le navigateur, vous voulez utiliser Moment.js :
moment()
renvoie un objet représentant la date et l'heure actuelles. Vous appelez ensuite sa.format()
méthode pour obtenir une représentation sous forme de chaîne selon le format spécifié. Dans ce casYYYY-MM-DD
,.Exemple complet:
la source
utilisez moment.js pour résoudre ce problème en 2 lignes, le type d'entrée de date html5 accepte uniquement ce format "AAAA-MM-JJ". Je résous mon problème de cette façon.
c'est le moyen le plus simple de résoudre ce problème.
la source
Javascript
Jquery
Une autre option
Si vous souhaitez personnaliser la date, le mois et l'année, faites simplement la somme ou le sous comme vous le souhaitez.
Appy la fonction d'aujourd'hui
la source
Très simple, il suffit d'utiliser des langages côté serveur comme PHP, ASP, JAVA ou même vous pouvez utiliser javascript.
Voici la solution
la source
la source
si vous devez remplir le datetime d'entrée, vous pouvez utiliser ceci:
la source
Pour NodeJS (Express avec modèles SWIG):
la source
Les solutions les plus simples semblent ignorer que l'heure UTC sera utilisée, y compris les plus fortement votées. Vous trouverez ci-dessous une version simplifiée, ES6, non jQuery de quelques réponses existantes:
la source
value
ouvalueAsDate
? Ça a l'air bien.C'est ce que j'ai fait dans mon code, je viens de le tester et cela a bien fonctionné, input type = "date" ne prend pas en charge la définition automatique de la curdate, donc la façon dont j'ai utilisé pour surmonter cette limitation était d'utiliser du code PHP un code simple comme celui-ci .
J'espère que cela aide!
la source
Les deux premières réponses sont incorrectes.
Une ligne courte courte qui utilise du JavaScript pur, tient compte du fuseau horaire local et ne nécessite aucune fonction supplémentaire à définir:
Ceci obtient la date / heure actuelle en millisecondes (depuis l'époque) et applique le décalage de fuseau horaire en millisecondes (minutes * 60k minutes par milliseconde).
Vous pouvez définir la date en utilisant
element.valueAsDate
mais vous avez ensuite un appel supplémentaire auDate()
constructeur.la source
C'est quelque chose que vous devez vraiment faire côté serveur car le format de l'heure locale de chaque utilisateur diffère, sans oublier que chaque navigateur se comporte différemment.
La valeur des entrées de date Html doit être au format suivant: aaaa-mm-jj sinon elle n'affichera pas de valeur.
Sortie de la date d'aujourd'hui: 2019-02-08
Puis dans votre html:
<input type="date" value="<% =get_date %>"
utilisez simplement ceci:
<input type="date" value="<?= date("Y-m-d"); ?>">
la source
C'est très simple en appliquant le code suivant, Utilisation
PHP
La fonction Date renverra la date actuelle, en prenant la date dans
time()
.la source
par Javascript:
la source
la source
Si vous utilisez ruby, vous pouvez utiliser ceci pour définir la valeur par défaut à la date et à l'heure d'aujourd'hui:
la source
Une solution simple:
la source
document.querySelector('.set-today').value=new Date().toISOString().substr(0,10);
Comme il n'y a pas de méthode par défaut pour définir la valeur à la date d'aujourd'hui, je dirais que cela devrait dépendre de son application. Si vous cherchez à maximiser l'exposition de votre public au sélecteur de date, utilisez un script côté serveur (PHP, ASP, etc.) pour définir la valeur par défaut.
Cependant, si c'est pour la console d'administration du CMS et que vous savez que l'utilisateur aura toujours JS sur ou votre site de confiance, vous pouvez utiliser JS en toute sécurité pour remplir la valeur par défaut, comme par jlbruno.
la source
J'ai eu le même problème et je l'ai résolu avec un simple JS. L'entrée:
le JS
Important: le script JS doit se trouver dans la dernière ligne de code ou après l'entrée, car si vous mettez ce code avant, le script ne trouvera pas votre entrée.
la source
Il n'y a pas de méthode par défaut dans HTML lui-même pour insérer la date d'aujourd'hui dans le champ de saisie. Cependant, comme tout autre champ de saisie, il acceptera une valeur.
Vous pouvez utiliser PHP pour récupérer la date d'aujourd'hui et la saisir dans le champ de valeur de l'élément de formulaire.
Le champ de valeur accepte le format AAAA-MM-JJ comme entrée, donc simplement en créant une variable
$date_string
dans le même format que la valeur d'entrée accepte et remplissez-la avec l'année, le mois et le jour extraits de la date d'aujourd'hui et voilá! Vous avez vous-même une date présélectionnée!J'espère que cela t'aides :)
Éditer:
Si vous souhaitez que le champ de saisie soit imbriqué dans HTML plutôt que PHP, vous pouvez procéder comme suit.
Je me rends compte que cette question a été posée il y a un certain temps (il y a 2 ans), mais il m'a encore fallu un certain temps pour trouver une réponse définitive sur Internet, donc cela va servir à quiconque cherche la réponse quand elle le peut et j'espère qu'elle le sera aide beaucoup tout le monde :)
Un autre montage:
Presque oublié, quelque chose qui a été une douleur royale pour moi dans le passé, oublie toujours de définir le fuseau horaire par défaut lors de la création d'un script en PHP qui utilise la fonction date ().
La syntaxe est
date_default_timezone_set(...);
. La documentation peut être trouvée ici sur PHP.net et la liste des fuseaux horaires pris en charge à insérer dans la fonction peut être trouvée ici . Cela a toujours été ennuyeux depuis que je suis en Australie, tout est toujours repoussé de 10 heures si je ne l'ai pas réglé correctement car il est par défaut UTC + 0000 où j'ai besoin de UTC + 1000 alors soyez prudent :)la source
Merci Peter, maintenant je change mon code.
la source
Et pour ceux qui utilisent ASP VBScript
Et puis dans le corps, votre élément devrait ressembler à ceci
À votre santé!
la source
Même après tout ce temps, cela pourrait aider quelqu'un. Il s'agit d'une solution JS simple.
JS
HTML
Une solution similaire fonctionne dans Angular sans bibliothèque supplémentaire pour convertir le format de date. Pour Angular (le code est raccourci en raison du code de composant commun):
la source