Comment puis-je ajouter ST, ND, RD, TH au format à jour .. Ie le 19 novembre, le 2 décembre, etc.
Actuellement, j'ai suivi du code P>
$( "#datepicker" ).datepicker({ altField: "#alternate", altFormat: "DD, MM d ", minDate: +0 });
8 Réponses :
Depuis le formatDDate () n'a pas cette option.
Edit: Oui, vous aviez raison, désolé ma réponse ne vous a pas aidé, je suis nouveau à cela. J'espère que cela aide cette fois-ci :) p>
Ajoutez une fonction OnSélectionnez à DatePicker init, quelque chose comme ceci: p> Il ajoute le suffixe au champ de remplacement Chaque fois que vous sélectionnez une date. P> p>
Ce lien ne semble pas être répondu non plus.
A fonctionné parfaitement pour moi, bien que vous puissiez également appliquer "ST" pour les cas 21 code> et
31 code>, appliquer "ND" pour
22 code> et appliquer 'RD' pour
23 code>. Puisque JavaScript tombe sur des déclarations de cas jusqu'à ce qu'il voit une pause code> Vous pouvez simplement ajouter
case '21': cas '31': code> après
case '1': < / code> et avant
suffixe code> (et de même pour les autres numéros)
Consultez cette demande de traction sur le repo JQueryui: https://github.com/ jquery / jquery-ui / pull / 438 p>
// Get the ordinal suffix for the given int value var ordinalSuffix = function (val) { var mod = val % 10; if (mod === 1 && val !== 11) { return 'st'; } else if (mod === 2 && val !== 12) { return 'nd'; } else if (mod === 3 && val !== 13) { return 'rd'; } else { return 'th'; } };
Chris West possède une définition assez courte et douce pour une fonction générant des ordinales pour tous les entiers. Sur Cette page Il montre même comment vous pouvez facilement utiliser sa fonction pour ajouter des ordinaux à Tous les numéros d'une chaîne. P>
Est-ce que cela aide?
Selon les règles de la grammaire, vous ne devez pas ajouter "TH", "ND", "RD", et "ST" à des dates lors de l'affichage comme "31 mars" ou "31 avril 2003". Vous ne les utilisez que lorsque vous affichez le "6 mars" ou le "23 juin". P>
voir Ce pour plus d'informations. P >
Je réalise que c'est une vieille question, mais je pensais poster ma solution au cas où que ce soit, le même problème trouve ce post. Cette méthode ne casse pas la date sélectionnée lors de l'ouverture du calendrier, etc. Ceci utilise le format D {suffixe} m yy I.e. '30e sept. 2013'
$.datepicker.origParseDate = $.datepicker.parseDate; $.datepicker.parseDate = function(format, value, settings) { if ( $.isPlainObject(format) && format.hasOwnProperty('parse') && $.isFunction(format.parse) ) { return format.parse.call(this, value, settings, $.datepicker.origParseDate); } else { $.datepicker.origParseDate(format, value, settings); } }; $.datepicker.origFormatDate = $.datepicker.formatDate; $.datepicker.formatDate = function(format, date, settings) { if ( $.isPlainObject(format) && format.hasOwnProperty('format') && $.isFunction(format.format) ) { return format.format.call(this, date, settings, $.datepicker.origFormatDate); } else { $.datepicker.origFormatDate(format, date, settings); } }; $('.datepicker').datepicker({ dateFormat: { parse: function(value, settings, originalParseDate) { value = value.replace(/[a-z][^\s]+/, ''); return originalParseDate.call(this, 'd M yy', value, settings); }, format: function(date, settings, originalFormatDate) { date = originalFormatDate.call(this, 'd M yy', date, settings).split(' '); date[0] += (function(n) { n = (+n % 100).toString().split(''); if (n.length > 1 && n.shift() === '1' || +n[0] > 3) { return 'th'; } else { return ['th', 'st', 'nd', 'rd'][+n[0]]; } })(date[0]); return date.join(' '); } } });
dateformat n'utilise pas "s" comme type de format, donc dans les options que j'ajoute habituellement -
dateFormat : "DD ds MM, yy", onSelect: function(dateText, inst) { var arrOrd = new Array('0','st','nd','rd','th','th','th','th','th','th','th','th','th','th','th','th','th','th','th','th','th','st','nd','rd','th','th','th','th','th','th','th','st'); var day = Number(inst.selectedDay); var suffix = arrOrd[day]; $(this).val($(this).val().replace(inst.selectedDay+"s",inst.selectedDay+suffix)); }
Le format repose sur
FormatDate () Code>
, en regardant le Docs il ne semble pas supporter ce format particulier