繁体   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