【问题标题】:Is there a way to output the long date from javascript datapicker有没有办法从 javascript datepicker 输出长日期
【发布时间】:2022-02-22 00:02:49
【问题描述】:

在这个日期选择器中,从日历中选择一个日期后,选择的日期以 dd-mm-yy 格式输出,有没有办法以长格式输出日期(2022 年 2 月 21 日星期一。)这个日期选择器的来源是:https://code-boxx.com/simple-datepicker-pure-javascript-css/#sec-download

  // CHOOSE A DATE
  pick : (id, day) => {
    // (C1) GET MONTH YEAR
    let inst = picker.instances[id],
        month = inst.hMonth.value,
        year = inst.hYear.value;

    // FORMAT & SET SELECTED DAY (DD-MM-YYYY)
    if (+month<10) { month = "0" + month; }
    if (+day<10) { day = "0" + day; }
    inst.target.value = `${day}-${month}-${year}`;

   //  POPUP ONLY - CLOSE
  if (inst.container === undefined) {
    inst.hWrap.classList.remove("show");
  }
    // CALL ON PICK IF DEFINED
    if (inst.onpick) { inst.onpick(); }
  }
};

【问题讨论】:

标签: javascript html date datepicker


【解决方案1】:

日期选择器值将采用yyyy-MM-dd 格式,您可以对其进行解析(使用String.split() 并将年、月和日传递给Date() 构造函数。

然后我们可以使用Date.toLocaleString()输出正确的格式:

function dateChanged() {
    const dt = getDatePickerDate('date-input');
    const options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
    document.getElementById('output').innerHTML = dt.toLocaleDateString([], options);
}

function getDatePickerDate(elementId) {
    const value = document.getElementById(elementId).value
    const [year, month, day] = value.split('-');
    return new Date(year, month - 1, day);
}
<input id='date-input' type="date" value="2022-02-21" onchange='dateChanged()'>
<p id='output'></p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-26
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多