如何使用 JavaScript 將 JSON 結果轉換為日期?


JSON 是一種強大的資料格式,用於在伺服器和客戶端之間交換資料。很多時候,JSON 資料以字串格式接收,我們需要將其轉換為可用的 JSON 物件。在這個過程中,將字串資料轉換為日期格式是一個重要的需求。在本文中,我們將學習如何使用 Javascript 將 JSON 結果轉換為日期字串。

JSON 物件包含如下日期:

{
   name: "John",
   time: '/Date(1559072200000)/'
}

結果將是:

Wed May 29 2019 01:06:40 GMT+0530 (India Standard Time) 

這裡有一些方法可以實現這一點:

  • 使用 string.replace 方法

  • 使用正則表示式

方法 1:使用 String replace( ) 方法

JavaScript 中的 replace 方法用於將字串的一部分替換為另一個字串。以下是使用 String.replace 方法將 JSON 結果轉換為日期的步驟。

  • 將字串的 "/Date(" 的第一部分替換為空字串

  • 將字串的 ")/" 的最後部分替換為空字串

  • 透過解析 JSON 字串中的毫秒數來建立一個新的 Date 物件

  • 現在你得到了日期,你可以像普通的 javascript 日期一樣使用它。

示例

在這個例子中,我們使用 String.replace() 方法將 JSON 結果轉換為日期。

<html> 
<body>
   <h2>Convert JSON results into a date using JavaScript</h2>
   <p>Click the following button to convert JSON results into a date</p>
   <button id="btn" onclick="convert( )"> Click Here </button> <br>
   <h3>Input Data : </h3>
   <p id="input"> /Date(1559072200000)/ </p>
   <h3> Resulting Date: </h3>
   <p id="output"> </p>
   <script>
      function convert() {
         
         // Store the JSON date string in a variable
         var jsonDate = '/Date(1559072200000)/';
         
         // Replace the first part of the string "/Date(" with an empty string
         jsonDate = jsonDate.replace("/Date(", " ")
         
         // Replace the last part of the string ")/" with an empty string
         jsonDate = jsonDate.replace(")/", " ")
         
         // Create a new Date object by parsing the number of milliseconds from the JSON string
         let strDate = new Date(parseInt(jsonDate));
         
         // Get the and output element in the HTML document
         let output = document.getElementById("output")
         
         // Set the inner text of the output element to the formatted date
         output.innerText = strDate;
      }
   </script>
</body>
</html>

方法 2:使用正則表示式

以下是使用正則表示式將 JSON 結果轉換為日期的步驟。

  • 使用正則表示式從 JSON 日期字串中提取 Unix 時間戳

  • 透過解析 JSON 字串中的毫秒數來建立一個新的 Date 物件

  • 現在你得到了日期,你可以像普通的 javascript 日期一樣使用它。

<html>
<body>
   <h2>Convert JSON results into a date using JavaScript</h2>
   <p>Click the following button to convert JSON results into a date</p>
   <button id="btn" onclick="convert( )"> Click Here </button> <br>
   <h3>Input Data : </h3>
   <p id="input"> /Date(1559072200000)/ </p>
   <h3> Resulting Date: </h3>
   <p id="output"> </p>
   <script>
      
      // Function to convert the JSON date format to a readable date
      function convert() {
         
         // The JSON date string in the format '/Date(unixTimestamp)/'
         var jsonDate = '/Date(1559072200000)/'; 
         
         // Extract the Unix timestamp from the JSON date string using regex
         jsonDate = jsonDate.match(/\d+/);
         
         // Create a new Date object using the unix timestamp
         let strDate = new Date(parseInt(jsonDate));
         
         // Get a reference to the HTML element with the id "output"
         let output = document.getElementById("output");
         output.innerText = strDate;
      }
   </script>
</body>
</html>

更新於:2023年2月21日

7000+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告