搜尋

首頁  >  問答  >  主體

將日期從字串轉換為輸入類型日期格式

<p>我有一個「datetime-local」的 HTML 輸入類型,然後將其儲存在 MS SQL Server 資料庫的日期時間欄位中。當我載入編輯頁面時,我想用資料庫中的值填入此 HTML 日期欄位。當我控制台出日期的值時,它是: 「2023 年 5 月 16 日星期二 15:40:00 GMT 0200(南非標準時間)」。 有沒有人成功地使用 Javascript 將這樣的字串轉換為可接受的 HTML 日期輸入格式? </p>
P粉587780103P粉587780103471 天前577

全部回覆(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
  • 取消回覆