簡體   English   中英

在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

對於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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM