簡體   English   中英

如何使用 JavaScript/jQuery 格式化現有日期

[英]How to format existing date using JavaScript/jQuery

我正在嘗試使用 JavaScript/jQuery 格式化日期時間,但它沒有發生。 我的代碼如下。

<div id="divID"></div>
    <script>
      var formatDate = function(date){
          return date.getDate() + "/" + date.getMonth() + "/" +date.getYear() + " "+  date.getHours() + ":" + date.getMinutes() + ":" + date.getMintutes() + ":" + date.getSeconds();
      }
      var timestamp="2016-12-16 07:58:30 AM ";
      var date= new Date(timestamp);
      document.getElementById('divID').innerHTML = formatDate(date);
    </script> 

在這里,我有現有時間2016-12-16 07:58:30 AM ,我需要將其更改為16-12-2016 07:58:30 AM但在這里我無法獲得正確的輸出。

您的代碼有幾個問題:

  • 你有一個語法錯誤,你正在調用getMintutes()
  • 您似乎試圖兩次顯示分鍾,因此您可以刪除其中一個電話
  • getFullYear()getYear()更適合您的需求
  • 您應該使用- not /來分隔日期值。
  • 您可以通過檢查hours < 12是否將AMPM添加到字符串的末尾
  • 您的時間戳字符串無效。 它不應包含“AM”或“PM”——因此該代碼在 Firefox 中不起作用。

考慮到這一點,試試這個:

 var formatDate = function(date) { return date.getDate() + "-" + date.getMonth() + "-" + date.getFullYear() + " " + ('0' + date.getHours()).slice(-2) + ":" + ('0' + date.getMinutes()).slice(-2) + ":" + ('0' + date.getSeconds()).slice(-2) + ' ' + (date.getHours() < 12 ? 'AM' : 'PM'); } var timestamp = "2016-12-16 07:58:30"; var date = new Date(timestamp); document.getElementById('divID').innerHTML = formatDate(date);
 <div id="divID"></div>

您可以使用庫來簡化日期格式化邏輯,但是當一行代碼工作正常時加載一個完整的庫是相當浪費的。

您使用的時間戳將返回無效日期,因此您應該刪除AM 使用moment.js你可以這樣做:

 var timestamp = "2016-12-16 07:58:30"; var formattedDate = moment(timestamp).format('DD-MM-YYYY h:mm:ss A'); console.log(formattedDate);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.5.1/moment.min.js"></script>

您可以使用名為moment.js http://momentjs.com/的庫

var date = new Date();
moment(date).format('DD-MM-YYYY HH:mm:ss A')

jQuery dateFormat是一個單獨的插件。 您需要使用<script>標簽顯式加載它。

您可以使用 JQuery UI Datepicker 獲取如下格式的日期。

let myDate = '2020-11-10';
$.datepicker.formatDate('dd-M-yy', new Date(myDate));

上面的代碼將返回 10-Nov-2020。

您可以使用 JQuery UI Datepicker Widget 獲得所需的輸出,如下所示。

var timestamp="2016-12-16 07:58:30 AM ";
var desiredTimestamp = $.datepicker.formatDate('dd-mm-yy', new Date(timestamp.split(' ')[0])) + ' ' + timestamp.split(' ')[1] + ' ' + timestamp.split(' ')[2];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM