如何將 JavaScript 日期時間轉換為 MySQL 日期時間?


在處理資料庫時,JavaScript 中的日期時間操作非常重要。JavaScript 的日期和時間與 MySQL 的日期和時間不同。JavaScript 提供了多種表示日期和時間的方式,但這些格式均與 MySQL 的日期和時間格式不同。在本文中,我們將討論一些將 JS 日期和時間轉換為 MySQL 日期和時間格式的方法。

首先,我們將瞭解 Javascript 和 MySQL 日期時間格式之間的區別。以下是一個示例:

Javascript

ISO 8601 Date Format : YYYY-MM-DDTHH:mm:ss.sssZ 

MySQL

ISO 8601 Date Format: YYYY-MM-DD HH:MM:SS 

以下是一些將 JS 日期轉換為 MySQL 日期格式的方法:

  • 使用 String split() 和 slice() 方法

  • 使用 String replace() 和 slice() 方法

使用 String split() 和 slice() 方法

此方法遵循以下步驟:

  • 獲取 Javascript 日期並使用 .toISOString() 方法將其轉換為 ISO 日期格式。

  • 使用 String.split( ) 方法和分隔符“T”將 ISO 字串拆分為兩個部分。

  • 宣告兩個變數 data 和 time 併為其分配字串的相應部分。

  • 組合日期和時間字串。

示例

在此示例中,我們使用 split() 和 slice() 方法將 JavaScript 日期時間轉換為 MySQL 日期時間。

<html>
<body>
   <h2>Convert JavaScript datetime to MySQL datetime</h2>
   <p>Click the following button to convert JavaScript datetime to MySQL datetime</p><br>
   <button id="btn" onclick="convert()"> Click Here </button>
   <br>
   <p id="result1">JavaScript Time: </p>
   <p id="result2">MySQL Time: </p>
   <script>
   
      // function to convert JavaScript date to MySQL date-time format
      function convert() {
         let out1 = document.getElementById("result1");
         
         // create a new Date object
         let dt = new Date();
         
         // convert the date object to ISO string format
         dt = dt.toISOString();
         out1.innerText += dt;
         
         // split the ISO string into date and time
         dt = dt.split("T");
         
         // separate the date and time into separate variables
         let date = dt[0];
         let time = dt[1].slice(0, 8);
         
         // combine date and time into a single MySQL-format string
         let mysqlTime = date + " " + time;
         
         // get the output element and set its text content to the MySQL time string
         let out2 = document.getElementById("result2");
         out2.innerText += mysqlTime;
      }
   </script>
</body>
</html>

經過一些壓縮後,JavaScript 程式碼可以寫成:

function convert() {
   let dt = new Date().toISOString().split("T");
   let mysqlTime = dt[0] + " " + dt[1].slice(0, 8);
   let out = document.getElementById("output");
   out.innerText += mysqlTime;
}

使用 String replace() 和 slice() 方法

此方法遵循以下步驟:

  • 獲取 Javascript 日期並使用 .toISOString() 方法將其轉換為 ISO 日期格式。

  • 將 T 替換為空格。

  • 擷取 ISO 日期字串的前 19 個字元。

示例

在此示例中,我們使用 replace() 和 slice() 方法將 JavaScript 日期時間轉換為 MySQL 日期時間。

<html>
<body>
   <h2>Convert JavaScript datetime to MySQL datetime</h2> 
   <p>Click the following button to convert JavaScript datetime to MySQL datetime</p><br>
   <button id="btn" onclick="convert( )"> Click Here </button><br>
   <p id="result1">JavaScript Time: </p>
   <p id="result2">MySQL Time: </p>
   <script>
      
      // function to convert JavaScript date to MySQL date-time format
      function convert() {
         let out1 = document.getElementById("result1");
         
         // Create a new Date object
         let dt = new Date();
         
         // Convert the date object to an ISO string
         dt = dt.toISOString();
         out1.innerText += dt;
         
         // Replace the 'T' character with a space
         dt = dt.replace("T", " ")
         
         // Slice the string, up to the 19th character
         dt = dt.slice(0, 19);
         
         // Print the string
         let out2 = document.getElementById("result2");
         out2.innerText += dt;
      }
   </script>
</body>
</html> 

經過一些壓縮後,JavaScript 程式碼可以寫成:

function convert() {
   let dt = new Date().toISOString().replace("T", " ").slice(0, 19);
   let out = document.getElementById("output");
   out.innerText += dt;
}

我們在這裡討論了兩種使用示例將 JavaScript 日期時間轉換為 MySQL 日期時間的方法。

更新於: 2023年2月21日

1K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告