我有一个代码可以ajax
进行php file
来电。
此php file
将数据库中的某些数据作为json
返回。
数据包含timestamp
类型的列,以及它的外观:
2015-10-24 18:04:28
但我希望将此格式转换为如下所示:
1445724268000
我尝试使用Date.parse()
但是当我log.console
时,我NaN
答案 0 :(得分:2)
"2015-10-24 18:04:28"
不是Date.parse()
或new Date()
的有效参数值。不同的浏览器可能会以不同的方式解释非标准值,因此它可能适用于某些人,即使它失败了,具体取决于所使用的浏览器。
根据the ECMAScript 2015 spec,日期字符串应为a simplification of the ISO 8601 extended format:YYYY-MM-DDTHH:mm:ss.sssZ(例如"2015-10-24T18:04:28"
)。
如果您可以使用字符T
替换日期和时间之间的空格字符,则您的字符串应该成为可接受的日期字符串。
这是一个有效的例子:
var inputs = document.querySelectorAll("input");
var outputs = document.querySelectorAll("span");
for(var i = 0; i < inputs.length; i++){
(function(index){
inputs[index].addEventListener("keyup",function(){updateOutput(index);});
})(i);
updateOutput(i);
}
function updateOutput(index){
var date = new Date(inputs[index].value);
outputs[index].innerHTML = date.getTime();
}
<input type="text" value="2015-10-24 18:04:28" id="inputOne"/><span id="outputOne"></span> (works in Chrome, could fail in IE and Firefox)<br/>
<input type="text" value="2015-10-24T18:04:28" id="inputOne"/><span id="outputOne"></span> (works in all browsers)<br/>
<input type="text" value="October 24, 2015 18:04:28" id="inputOne"/><span id="outputOne"></span> (this usually works too, but isn't in the spec)
注意:某些来源(MDN)也表明日期字符串可以是an IETF-compliant RFC 2822 timestamp(例如"October 24, 2015 18:04:28"
),但这不是实际规范的一部分,未来的JavaScript实现可能不支持。
答案 1 :(得分:1)
由于收到的时间戳是字符串,请将空格替换为T
:
var timestampString = "2015-10-24 18:04:28"; //Your input
您只需将其转换为有效的日期格式并使用getTime()
方法。
var timestamp = new Date(timestampString.replace(' ','T')).getTime();
答案 2 :(得分:0)
Date.getTime()
返回纪元字符串(例如,757382400000
)
所以要转换你的时间戳,你可以写:
var date = new Date(timestamp);
var epochString = date.getTime();
如果您输出到控制台(console.log(epochString
),您最终会得到类似757382400000
的内容。
答案 3 :(得分:0)
如果经常使用上述格式,我会这样做:
function formatDate(myFormat) {
var dateTime = myFormat.split(" ");
var myDate = new Date (dateTime[0]);
var myTime = dateTime[1].split(":");
var result = new Date(
myDate.getYear() + 1900,
myDate.getMonth(),
myDate.getDate(),
myTime[0],
myTime[1],
myTime[2],
0);
return result;
}
var date = formatDate("2015-10-24 18:04:28");
alert(date.getTime());
这会为您提供本地日期和时间。您可能希望切换到UTC值。
有关日期的详情,请参阅http://www.w3schools.com/js/js_dates.asp。
这里是JSFiddle。