2010-12-10 28 views
4

J'ai une datepicker jQuery UI et je cherche à localiser la date retournée, puis le formater à supprimer les zéros de tête.jQuery UI datepicker - puis-je formater une date qui a été localisée?

Il semble que je peux faire l'un ou l'autre. Y a-t-il un moyen de le localiser et de le formater?

Mon code exemple:

// myDate = 01/25/2010 
// myLanguage = ""; //for US english, but could be any language 

$('#mytxtbox').datepicker($.datepicker.regional['<%= mylanguage %>']); 
$('#mytxtbox').datepicker({ dateFormat: 'm/d/yy' }); 

var dateToSet = $.datepicker.parseDate('m/d/yy', '<%= myDate %>');  
$('#mytxtbox').datepicker("setDate", dateToSet); 

dans l'exemple précédent la date qui obtient affichée dans ma zone de texte est "01/25/2010". Si je commente la ligne qui définit la région, le formatage fonctionne (c'est-à-dire 1/25/2010). Il me semble que la localisation est en train d'écraser mon "dateFormat"? Est-il possible de faire les deux?

S'il vous plaît noter, j'ai inclus tous les fichiers appropriés région

Répondre

0

setDate accepte un objet Date comme paramètre qui est la région indépendante.

Définit la date actuelle pour le sélecteur de date. La nouvelle date peut être un objet Date ou une chaîne dans le format de date actuel (par exemple '01/26/2009 '), un nombre de jours à compter d'aujourd'hui (par exemple +7) ou une chaîne de valeurs et de périodes (' y 'pour ans, 'm' pour les mois, 'w' pour les semaines, 'd' pour les jours, par exemple '+ 1m + 7d'), ou null pour effacer la date sélectionnée.

0

Cela ressemble à votre question JQuery datepicker language

+0

Ce sujet parle de fichiers de langue manquants (jquery-ui-datepicker- [languageCode] .js). L'OP indique que ce n'est pas le cas –

0

Je crois que c'est parce que vous avez déjà initialisé le datepicker avec la localisation comme la seule option. Si vous ne souhaitez pas que la région soit dynamique ou que vous souhaitiez définir l'état initial du sélecteur de date, essayez de passer les deux options dans un options object.

$("#mytxtbox") 
    .datepicker({ 
    dateFormat: 'm/d/yy', 
    $.datepicker.regional['<%= mylanguage %>'] 
    }); 

OU si vous voulez qu'il soit dynamique faire quelque chose similaire à l'interface jQuery example.

Essayez de formater d'abord la date, puis réglez l'option régionale.

//original initialization 
$("#mytxtbox").datepicker({dateFormat: 'm/d/yy'}); 
//then set localize the date based on a change function 
$("ul.region").change({ 
$("mytxtbox").datepicker('option', $.datepicker.regional[$(this).val()]); 
}); 
+0

La première option entraîne une syntaxe invalide. Le second ne prend pas en compte le format –

1

J'ai rencontré le même problème. Ma solution: (les paramètres régionaux sont dans un tableau, il suffit d'ajouter quelques valeurs)

var defaults = $.datepicker.regional['<%= mylanguage %>']; 
defaults['dateFormat'] = 'm/d/yy'; 
$("#mytxtbox").datepicker(defaults); 
0

si vous faites un régional et beforeShow ou toute autre fonction comme elle, vous pourriez comme tout cela dans un :

$("#mytxtbox").datepicker({dateFormat: 'dd-mm-y'}, 
    $.datepicker.regional[ "ar" ], 
      { 
       beforeShow: function(input, inst) { 
        var widget = $(inst).datepicker('widget'); 
        widget.css('margin-left', $(input).outerWidth() - widget.outerWidth()); 
       } 
      }); 
0

Peut-être trop tard mais, comme j'ai fait quelques recherches Google et je suis venu ici, je poste ma solution. Je suppose que vous avez un type d'entrée pour le datepicker, tels que:

<input id="date" type="text" name="date"> 

Si vous souhaitez définir une langue locale en fonction de vos visiteurs et un format de date prédéfinie pour traitment plus loin, vous pouvez lancer votre DatePicker comme suivre :

 $(function() { 
      $('#date').datepicker(); 
    $('#date').datepicker("option",$.datepicker.regional["<<your_variable_locale>>"]); 
    $('#date').datepicker("option","dateFormat","dd/mm/yy"); 
}); 

Il va changer le format anglais par défaut, à savoir mm/jj/aa.

La documentation n'est pas très claire sur la façon de combiner des options comme le format régional et le format de date, mais cela fonctionne pour moi sur Firefox.