如何转换datetime格式?

我正在使用sailsjs(node.js),我已经从mysql数据库中获取所有数据,并在jtable中显示数据,但date格式如下所示: YYYY-MM-DDTHH:mm:ss.000Z

我需要将这个(YYYY-MM-DDTHH:mm:ss.000Z)格式转换成14-08-2015 04:36:04 PM

在jtable我已经使用下面的格式,但不工作。

 UpdatedDate: { edit: false, create: false, type: 'datewithtime', displayFormat: 'dd-mm-yy', Weightage: 2, tooltip: 'Date Modified', title: 'Date Modified' /*display: function (data) { return moment(data).format('YYYY-MM-DDTHH:mm:ss'); // return data.format("dd-m-yy"); }*/ } in model CreatedDate : { type: 'DATETIME'}, 

这是一个简单的解决方法,只使用JavaScript。 这可能不是最好的办法,但它的简单和有效。

 var date = new Date("1994-11-05T08:15:30-05:00");//this is the format you have date.toLocaleDateString().split('/').join('-')+" "+date.toLocaleTimeString() //this converts it to necessary format OUTPUT: "11-5-1994 6:45:30 PM" 

编辑:对不起,我猜它按照您的系统区域设置转换date。 好,所以原始修复如下:

 var date = new Date("1994-11-05T08:15:30-05:00");//this is the format you have") var datePart = date.getDate()+"-"+date.getMonth()+"-"+date.getFullYear(); function formatAMPM(date) { var hours = date.getHours(); var minutes = date.getMinutes(); var secs = date.getSeconds(); var ampm = hours >= 12 ? 'PM' : 'AM'; hours = hours % 12; hours = hours ? hours : 12; // the hour '0' should be '12' minutes = minutes < 10 ? '0'+minutes : minutes; var strTime = hours + ':' + minutes +':'+secs+ ' ' + ampm; return strTime; } var timePart = formatAMPM(date); console.log(datePart+" "+timePart); 

好的,这个时候,每个字段都是单独提取的,而不是使用任何现有的格式,所以这肯定会起作用 另外如果你打开使用外部库,这里是使用moment.js的另一个解决scheme

 moment(date).format("DD-MM-YYYY hh:mm:ss A") 

示例代码:

 SELECT DATE_FORMAT('2007-10-04 22:23:00', '%d-%m-%Y %h:%i:%s %p') 

从表中select数据时进行以下更改:

displayFormat:'%d-%m-%Y%h:%i:%s%p'