首页  >  问答  >  正文

将日期从字符串转换为输入类型日期格式

<p>我有一个“datetime-local”的 HTML 输入类型,然后将其存储在 MS SQL Server 数据库的日期时间字段中。当我加载编辑页面时,我想用数据库中的值填充此 HTML 日期字段。当我控制台出日期的值时,它是: “2023 年 5 月 16 日星期二 15:40:00 GMT+0200(南非标准时间)”。 有没有人成功地使用 Javascript 将这样的字符串转换为可接受的 HTML 日期输入格式?</p>
P粉587780103P粉587780103409 天前509

全部回复(1)我来回复

  • P粉788765679

    P粉7887656792023-09-06 19:51:15

    Js 具有内置方法,您可以使用这些方法来处理日期。

    在下面的例子中我:

    • 使用 Date 方法将输入字符串转换为 Date 对象。
    • 使用 getFullYear 方法从 Date 对象中提取年份。
    • 使用 getMonth 方法从 Date 对象中提取月份。
      • 由于 getMonth 方法返回从零开始的月份索引(一月 = 0、二月 = 1 等),因此我们必须执行以下操作:结果 + 1。
      • 将月份转换为字符串。
      • 使用 padStart 方法确保月份字符串的长度为 2 个字符。示例:如果提取的值 = 1,则月份 = 01。
    • 使用 getDay 方法从 Date 对象中提取日期。
      • 将日期转换为字符串。
      • 使用 padStart 方法确保日期字符串的长度为 2 个字符。示例:如果提取的值 = 1,则日期 = 01。
    • 设置日期格式,使其适合 HTML 输入格式。
    • 将 HTML 元素值替换为我们提取的值。

    const input = "Tue May 19 2024 15:40:00 GMT+0200 (South Africa Standard Time)";
    const inputDate = new Date(input);
    
    const year = inputDate.getFullYear();
    const month = (inputDate.getMonth() + 1).toString().padStart(2, "0");
    const day = inputDate.getDate().toString().padStart(2, "0");
    
    const formattedDate = `${year}-${month}-${day}`;
    const datePicker = document.getElementById('datePicker');
    datePicker.value = formattedDate;
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
        <input type="date" id="datePicker" value="">
    </body>
    
    </html>

    回复
    0
  • 取消回复