在jQuery中格式化日期
var date = "Fri Jan 29 2012 06:12:00 GMT+0100";
我怎么能以2012-01-29 06:12的格式显示这个? 在PHP中是函数 – >格式。 在Javascript也是格式,但如果我尝试使用这个,那么我有错误:
now.format不是一个函数
var now = new Date(); console.log(now.format("isoDateTime"));
http://jsfiddle.net/6v9hD/
我想收到格式: 2012-01-29 06:12
这个问题是重复的(请参阅: 如何在jquery中获取当前日期? )。
通过从另一个问题修改我的解决方案 ,我得到:
var d = new Date(); var month = d.getMonth()+1; var day = d.getDate(); var hour = d.getHours(); var minute = d.getMinutes(); var second = d.getSeconds(); var output = d.getFullYear() + '-' + ((''+month).length<2 ? '0' : '') + month + '-' + ((''+day).length<2 ? '0' : '') + day + ' ' + ((''+hour).length<2 ? '0' :'') + hour + ':' + ((''+minute).length<2 ? '0' :'') + minute + ':' + ((''+second).length<2 ? '0' :'') + second;
请参阅此jsfiddle以获取证据: http : //jsfiddle.net/nCE9u/3/
你也可以将它包含在函数中(演示在这里: http : //jsfiddle.net/nCE9u/4/ ):
function getISODateTime(d){ // padding function var s = function(a,b){return(1e15+a+"").slice(-b)}; // default date parameter if (typeof d === 'undefined'){ d = new Date(); }; // return ISO datetime return d.getFullYear() + '-' + s(d.getMonth()+1,2) + '-' + s(d.getDate(),2) + ' ' + s(d.getHours(),2) + ':' + s(d.getMinutes(),2) + ':' + s(d.getSeconds(),2); }
并使用它:
getISODateTime(new Date());
要么:
getISODateTime(some_other_date);
编辑:我已经添加了一些改进function,如Ates Goral所提出的(也降低了它的可读性,支持代码注释)。
Datejs 。 toString (’yyyy-MM-dd HH:mm’)应该可以解决问题
不幸的是,在Javascript中,Date没有format()方法。
查看http://fisforformat.sourceforge.net了解一些不错的格式化方法。
使用类似Datejs的库或者这个推文大小的实现:
https://gist.github.com/1005948
var str = formatDate( new Date(), "{FullYear}-{Month:2}-{Date:2} {Hours:2}:{Minutes:2}");
我想这可以帮到你: date.format.js
var now = new Date(); now.format("m/dd/yy"); // Returns, eg, 6/09/07 // Can also be used as a standalone function dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT"); // Saturday, June 9th, 2007, 5:46:21 PM // You can use one of several named masks now.format("isoDateTime");
你可以使用这样的东西(包括date.js ):
Date.parse(yourDate).toISOString();
所以日期将采用ISO 8601格式。