如何格式化这个:
/Date(1292962456255)/
在JavaScript/jQuery中如何将日期呈现为常规格式?
如何格式化这个:
/Date(1292962456255)/
var msDateToJSDate = function(msDate) {
var dtE = /^\/Date\((-?[0-9]+)\)\/$/.exec(msDate);
if (dtE) {
var dt = new Date(parseInt(dtE[1], 10));
return dt;
}
return null;
}
return msEncodedDate
是什么意思?如果字符串不匹配模式,则返回函数本身?这根本没有任何意义。 - Theo看看 moment.js 吧!它是一个“用于解析、操作和格式化日期的轻量级 JavaScript 日期库”。它是一个非常强大的小型库。
下面是一个例子...
var today = moment(new Date());
today.format("MMMM D, YYYY h:m A"); // outputs "April 11, 2012 2:32 PM"
// in one line...
moment().format("MMMM D, YYYY h:m A"); // outputs "April 11, 2012 2:32 PM"
以下是另一个例子...
var a = moment([2012, 2, 12, 15, 25, 50, 125]);
a.format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Monday, March 12th 2012, 3:25:50 pm"
a.format("ddd, hA"); // "Mon, 3PM"
a.format("D/M/YYYY"); // "12/3/2012"
另外值得一提的是要查看date.js。我认为这两个库互补。
这个数字是毫秒级别的时间戳。可以将此数字传递给JavaScript的Date
类构造函数。所需的只是一些代码来从字符串中提取它:
var dateString = "/Date(1292962456255)/";
var matches = dateString.match(/^\/Date\((\d+)\)\/$/);
var date = new Date(parseInt(matches[1], 10));
var dateString = "/Date(1292962456255)/";
var date = eval("new " + dateString.substring(1, dateString.length - 1));
但这可能会导致XSS攻击,所以我不建议这样做。
我认为这是一个microtime
。类似于PHP的microtime函数。或者在JavaScript中使用new Date().getTime()
。
// PHP
$ php -r "var_dump(microtime(true));"
float(1292963152.1249)
// JavaScript
new Date().getTime()
1292963411830