【问题标题】:How to change YEAR label on flatpickr calendar如何更改 flatpickr 日历上的年份标签
【发布时间】:2019-12-11 18:00:24
【问题描述】:

我想更改 flatpickr 日历上的当前标签年份。 2019到2562,2562是佛教年(+543年)。

flatpickr calendar picture

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

我写了一些行来使泰语的替代文本可读并且仍然有 公元前。数据库的日期。 快完成了。但我不能更改日历上的年份标签。 请帮忙:)

谢谢。

【问题讨论】:

    标签: flatpickr


    【解决方案1】:

    我试图解决这个问题,但最后我只是将当前日期移回 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])) );        
            }
        },
        ...
    }
    

    【讨论】:

      【解决方案2】:

      我通过获取flatpickr 实例并更改年份解决了这个问题:

      let instant = $(".datepickernextyear").flatpickr({
                      "locale": "th",
                      "dateFormat": "d/m/Y"
                  });
                  
       //set calendar to buddhist +543
       instant.changeYear(new Date().getFullYear() + 543)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-27
        • 1970-01-01
        • 2013-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-03
        • 1970-01-01
        相关资源
        最近更新 更多