[英]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
對於Date.parse()
或new Date()
"2015-10-24 18:04:28"
不是有效的參數值。 不同的瀏覽器對非標准值的解釋可能有所不同,因此,即使對於您來說失敗了,它也可能對某些人有用,這取決於所使用的瀏覽器。
根據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()
返回紀元字符串(例如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 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.