转换javascript中的日期格式
Convert the format of date in javascript
我有一个代码,它从php file
调用ajax
。该php file
从数据库返回一些数据作为json
。数据包含一个timestamp
类型的列,其外观如下:
2015-10-24 18:04:28
但我想把这种格式转换成这样:
1445724268000
我试着使用Date.parse()
,但当我使用log.console
时,我得到了NaN
"2015-10-24 18:04:28"
不是Date.parse()
或new Date()
的有效参数值。不同的浏览器可能对非标准值的解释不同,因此它可能对某些人有效,即使它对您来说失败了,这取决于使用的浏览器。
根据ECMAScript 2015规范,日期字符串应该是ISO 8601扩展格式的简化: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)也表示日期字符串可以是符合IETF的RFC 2822时间戳(如"October 24, 2015 18:04:28"
),但这不是实际规范的一部分,在未来的JavaScript实现中可能不支持。
由于接收到的时间戳是一个字符串,请将空格替换为T
:
var timestampString = "2015-10-24 18:04:28"; //Your input
您只需要将其转换为有效的日期格式并使用getTime()
方法。
var timestamp = new Date(timestampString.replace(' ','T')).getTime();
Date.getTime()
返回epoch字符串(例如757382400000
)
所以要转换时间戳,你可以写:
var date = new Date(timestamp);
var epochString = date.getTime();
如果您向控制台输出(console.log(epochString
),您将得到类似757382400000
的结果。
如果经常使用上面的格式,我会这样做:
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。
- Javascript日期格式类似于ISO,但本地
- NodeJS日期格式不起作用
- 将客户端特定的日期格式返回到服务器MVC4
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- 将Javascript日期转换为ASP.NET日期格式
- 在达到状态之前在Redux Reducer中设置日期格式
- 如何从Angularjs中的新日期获取日期格式
- 如何使用jquery更改为所需的日期格式
- keith wood日期选择器日期格式和语言
- Dygraph更改日期格式
- 确定Twig(或JavaScript)中的国际日期格式,以便在其他地方使用
- javascript和jquery日期格式转换
- 用javascript将日期格式从d/m/yyyy转换为yyyy-mm-dd
- 在Datepicker中将日期格式更改为yyyy-mm-dd
- 在Karma Jasmine单元测试用例中检查日期格式
- 使用不同的日期格式和区域设置创建时刻
- 更改日期选择器上的日期格式
- 以日期计算的天数更改日期格式
- 带有onchange的日期格式
- 如何从区域设置获取日期格式