我想更改Flatpickr日历上的当前标签年份。 2019年至2562年,2562年是佛教(+543年)。
flatpickr.localize(flatpickr.l10ns.th);
$('#my_date').flatpickr({
dateFormat: "Y-m-d 20:00",
altInput: true,
onChange: (selectedDates, dateStr, instance) => {
moment.locale('th');
thai_DM = moment(selectedDates[0]).format('Do MMMM');
thai_Y = parseInt(moment(selectedDates[0]).format('YYYY')) + 543;
instance.altInput.value = thai_DM + " " + thai_Y;
$('#dateStr_for_db').val(dateStr);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- flatpickr -->
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
<script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>
<script src="https://npmcdn.com/flatpickr/dist/l10n/th.js"></script>
<!-- moment -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js"></script>
<input type="text" id="my_date"> flatpickr
<br>
<br>
<input type="text" id="dateStr_for_db"> my_date.value for insert to db
我写了几行文字来使泰文可读,但仍然有 公元前。 DB的日期。 差不多完成了。但我无法更改日历上的年份标签。 请帮忙:)
谢谢。
答案 0 :(得分:0)
我试图解决此问题,但是最后我只是将当前日期移了543年,然后才保存回移。我正在使用momentjs。
toBudThai(date) {
return (date.clone()).add(543, "years");
}
fromBudThai(date) {
return (date.clone()).subtract(543, "years");
}
getDefaultDate() {
return this.toBudThai(moment());
}
Flatpickr选项如下所示。
{
...
defaultDate: getDefaultDate().format('YYYY-MM-DD'),
onChange: (selectedDates, dateStr, instance) => {
if (selectedDates.length) {
console.log( fromBudThai(moment(selectedDates[0])) );
}
},
...
}
答案 1 :(得分:0)
我通过获取 flatpickr
实例并更改年份解决了这个问题:
let instant = $(".datepickernextyear").flatpickr({
"locale": "th",
"dateFormat": "d/m/Y"
});
//set calendar to buddhist +543
instant.changeYear(new Date().getFullYear() + 543)