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

如何使用JavaScript/jQuery格式化现有日期,javascript,jquery,Javascript,Jquery,我正在尝试使用JavaScript/jQuery格式化日期时间,但没有实现。我的代码如下 <div id="divID"></div> <script> var formatDate = function(date){ return date.getDate() + "/" + date.getMonth() + "/" +date.getYear() + " "+ date.getHours() + ":" + da

我正在尝试使用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> 

var formatDate=函数(日期){
返回日期.getDate()+“/”+date.getMonth()+“/”+date.getYear()+“+date.getHours()+”:“+date.getMinutes()+”:“+date.getMinutes()+”:“+date.getSeconds();
}
var timestamp=“2016-12-16 07:58:30 AM”;
var日期=新日期(时间戳);
document.getElementById('divID')。innerHTML=formatDate(日期);

这里我有现有的时间
2016-12-16 07:58:30 AM
,我需要将其更改为
16-12-2016 07:58:30 AM
,但这里我无法获得正确的输出。

您的代码有一些问题:

  • 出现语法错误,正在调用
    getMintutes()
  • 您似乎试图显示分钟数两次,因此可以删除其中一个呼叫
  • getFullYear()
    getYear()
  • 应该使用
    -
    而不是
    /
    来限定日期值
  • 通过检查
    hours<12
  • 您的时间戳字符串无效。它不应该包含“AM”或“PM”-因此该代码在Firefox中不起作用
考虑到这一点,请尝试以下方法:

var formatDate=函数(日期){
返回日期.getDate()+“-”+日期.getMonth()+“-”+日期.getFullYear()+”+('0'+日期.getHours()).slice(-2)+:“+('0'+日期.getMinutes()).slice(-2)+:”+('0'+日期.getSeconds()).slice(-2)+++(日期.getHours()<12?'AM':'PM');
}
var timestamp=“2016-12-16 07:58:30”;
var日期=新日期(时间戳);
document.getElementById('divID')。innerHTML=formatDate(日期)

您的代码有几个问题:

  • 出现语法错误,正在调用
    getMintutes()
  • 您似乎试图显示分钟数两次,因此可以删除其中一个呼叫
  • getFullYear()
    getYear()
  • 应该使用
    -
    而不是
    /
    来限定日期值
  • 通过检查
    hours<12
  • 您的时间戳字符串无效。它不应该包含“AM”或“PM”-因此该代码在Firefox中不起作用
考虑到这一点,请尝试以下方法:

var formatDate=函数(日期){
返回日期.getDate()+“-”+日期.getMonth()+“-”+日期.getFullYear()+”+('0'+日期.getHours()).slice(-2)+:“+('0'+日期.getMinutes()).slice(-2)+:”+('0'+日期.getSeconds()).slice(-2)+++(日期.getHours()<12?'AM':'PM');
}
var timestamp=“2016-12-16 07:58:30”;
var日期=新日期(时间戳);
document.getElementById('divID')。innerHTML=formatDate(日期)

是一个独立的插件。您需要使用
标记显式加载该插件。

是一个单独的插件。您需要使用
标记显式加载它。

您使用的时间戳将返回无效日期,因此您应该删除
AM
。使用您可以这样做:

var timestamp=“2016-12-16 07:58:30”;
var formattedDate=时刻(时间戳).format('DD-MM-YYYY h:MM:ss A');
console.log(格式化日期)

您使用的时间戳将返回无效日期,因此您应该删除
AM
。使用您可以这样做:

var timestamp=“2016-12-16 07:58:30”;
var formattedDate=时刻(时间戳).format('DD-MM-YYYY h:MM:ss A');
console.log(格式化日期)

您可以使用名为
moment.js的库


您可以使用名为
moment.js的库


您可以使用jQueryUIDatePicker获取格式化日期,如下所示

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

上面的代码将返回2020年11月10日。

您可以使用JQuery UI Datepicker获取格式化日期,如下所示

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

上面的代码将返回2020年11月10日。

您可以使用JQuery UI Datepicker小部件获得所需的输出,如下所示

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];

您可以使用jQueryUIDatePicker小部件获得所需的输出,如下所示

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];

检查这个插件你可以使用
moment.js
这很简单。检查这个插件你可以使用
moment.js
这很简单。时间戳也应该是
“2016-12-16 07:58:30”
没有“AM”抱歉这里
AM/PM
缺失。我还需要
AM/PM
@satya为你在所有浏览器中检查这个。它的工作chrome fine bur firefox不工作。时间戳应该是
“2016-12-16 07:58:30”
没有“AM”抱歉
AM/PM
丢失。我还需要
AM/PM
@satya为您添加,请在所有浏览器中检查此项。它的chrome fine浏览器不工作。@satya,你从
时间戳中删除
AM
了吗?因为答案中的代码是有效的。点击
运行代码片段
按钮查看其运行情况。另外,在Firefox上也是如此。@satya,您是否已从
时间戳中删除
AM
?因为答案中的代码是有效的。点击
运行代码片段
按钮查看其运行情况。另外,在Firefox上也是如此。