[英]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
是否将AM
或PM
添加到字符串的末尾考虑到这一点,试试这个:
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.