J'ai un calendrier très simple jQuery Datepicker:
$(document).ready(function(){
$("#date_pretty").datepicker({
});
});
et bien sur dans le HTML ...
<input type="text" size="10" value="" id="date_pretty"/>
La date d'aujourd'hui est bien mise en évidence pour l'utilisateur lorsqu'il affiche le calendrier, mais comment puis-je faire en sorte que jQuery préremplisse la zone de texte elle-même avec la date d'aujourd'hui au chargement de la page, sans que l'utilisateur fasse quoi que ce soit? 99% du temps, la date du jour par défaut sera ce qu'ils veulent.
Mise à jour: Il y a des rapports que cela ne fonctionne plus dans Chrome.
C'est concis et fait le travail:
$(".date-pick").datepicker('setDate', new Date());
Vous devez d'abord appeler datepicker ()> alors utilisez 'setDate' pour obtenir la date du jour.
$(".date-pick").datepicker();
$(".date-pick").datepicker("setDate", new Date());
OU chaînez votre appel de méthode setDate après votre initialisation datepicker, comme indiqué dans un commentaire sur cette réponse
$('.date-pick').datepicker({ /* optional option parameters... */ })
.datepicker("setDate", new Date());
Cela fonctionnera PAS avec seulement
$(".date-pick").datepicker("setDate", new Date());
NOTE: Les paramètres setDate acceptables sont décrits ici
var myDate = new Date();
var prettyDate =(myDate.getMonth()+1) + '/' + myDate.getDate() + '/' +
myDate.getFullYear();
$("#date_pretty").val(prettyDate);
semblait fonctionner, mais il pourrait y avoir un meilleur moyen là-bas ..
La méthode setDate()
définit la date et met à jour le contrôle associé. Voici comment:
$("#datepicker1").datepicker({
dateFormat: "yy-mm-dd"
}).datepicker("setDate", "0");
Comme indiqué dans la documentation, setDate()
accepte avec joie l'objet, la date et le numéro JavaScript, ainsi qu'une chaîne:
La nouvelle date peut être un objet Date ou une chaîne dans la date actuelle format (par exemple '01/26/2009 '), un nombre de jours à compter d’aujourd’hui (par exemple +7) ou un Chaîne de valeurs et de périodes ('y' pour les années, 'm' pour les mois, 'w' pour semaines, 'd' pour les jours, par exemple '+ 1m + 7d') ou null pour effacer le. sélectionné . rendez-vous amoureux.
Si vous le souhaitez, définissez defaultDate
property dans le constructeur ne le fait pas mettez à jour le contrôle associé.
Régler sur aujourd'hui:
$('#date_pretty').datepicker('setDate', '+0');
Réglé sur hier:
$('#date_pretty').datepicker('setDate', '-1');
Et ainsi de suite avec un nombre quelconque de jours avant ou après _ date du jour.
Voir jQuery UI ›Méthodes› setDate .
La solution est:
$(document).ready(function(){
$("#date_pretty").datepicker({
});
var myDate = new Date();
var month = myDate.getMonth() + 1;
var prettyDate = month + '/' + myDate.getDate() + '/' + myDate.getFullYear();
$("#date_pretty").val(prettyDate);
});
Merci Grayghost!
Ce code vous assurera d'utiliser le format de votre datepicker:
$('#date-selector').datepicker('setDate', new Date());
Pas besoin de réappliquer le format, il utilise le datepicker prédéfini-un par vous lors de l'initialisation du datepicker (si vous l'avez attribué!);)
Celui-ci a fonctionné pour moi.
$('#inputName')
.datepicker()
.datepicker('setDate', new Date());
Le code de David K Egghead a parfaitement fonctionné, merci!
$(".date-pick").datepicker();
$(".date-pick").datepicker("setDate", new Date());
J'ai aussi réussi à le couper un peu et cela a également fonctionné:
$(".date-pick").datepicker().datepicker("setDate", new Date());
$('input[name*="date"]').datepicker({
dateFormat: 'dd-mm-yy',
changeMonth: true,
changeYear: true,
beforeShow: function(input, instance) {
$(input).datepicker('setDate', new Date());
}
});
Pour pré-renseigner la date, vous devez d'abord initialiser datepicker, puis transmettre la valeur du paramètre setDate.
$("#date_pretty").datepicker().datepicker("setDate", new Date());
Vous avez 2 options:
OPTION A) Marque comme "actif" dans votre calendrier, uniquement lorsque vous cliquez dans l'entrée.
Js :
$('input.datepicker').datepicker(
{
changeMonth: false,
changeYear: false,
beforeShow: function(input, instance) {
$(input).datepicker('setDate', new Date());
}
}
);
Css :
div.ui-datepicker table.ui-datepicker-calendar .ui-state-active,
div.ui-datepicker table.ui-datepicker-calendar .ui-widget-content .ui-state-active {
background: #1ABC9C;
border-radius: 50%;
color: #fff;
cursor: pointer;
display: inline-block;
width: 24px; height: 24px;
}
OPTION B) Entrée par défaut avec today . Vous devez d'abord renseigner le datepicker.
$ ("input.datepicker"). datepicker (). datepicker ("setDate", new Date ());
Je pensais juste ajouter mes deux sous. Le sélecteur est utilisé sur un formulaire d'ajout/mise à jour. Il était donc nécessaire d'afficher la date provenant de la base de données si vous modifiez un enregistrement existant ou la date du jour sinon. Ci-dessous fonctionne bien pour moi:
$( "#datepicker" ).datepicker();
<?php if (!empty($oneEVENT['start_ts'])): ?>
$( "#datepicker" ).datepicker( "setDate", "<?php echo $startDATE; ?>" );
<? else: ?>
$("#datepicker").datepicker('setDate', new Date());
<?php endif; ?>
});
Afin de régler le sélecteur de date sur une certaine heure par défaut (la date actuelle dans mon cas) lors du chargement, ET avoir ensuite la possibilité de choisir une autre date, la syntaxe est la suivante:
$(function() {
// initialize the datapicker
$("#date").datepicker();
// set the time
var currentDate = new Date();
$("#date").datepicker("setDate",currentDate);
// set the options for the button
$("#date").datepicker("option",{
dateFormat: 'dd/mm',
showOn: "button",
// whatever option Or event you want
});
});
var prettyDate = $.datepicker.formatDate('dd-M-yy', new Date());
alert(prettyDate);
Attribuez la valeur prettyDate au contrôle nécessaire.
Essaye ça
$(this).datepicker("destroy").datepicker({
changeMonth: false, changeYear: false,defaultDate:new Date(), dateFormat: "dd-mm-yy", showOn: "focus", yearRange: "-5:+10"
}).focus();
Cela fonctionne mieux pour moi, car j’ai parfois de la difficulté à appeler .datepicker('setDate', new Date());
, car cela gêne si j’ai le datepicker déjà configuré avec des paramètres.
$("#myDateText").val(moment(new Date()).format('DD/MM/YYYY'));