0
我把日期作爲一個字符串,然後試圖將其轉換爲ISO。toISOstring不能在JavaScript中工作
這是我一直在做:
var dateValue = "Tue Sep 29 2015 16:50:00 GMT+0530 (IST)"
alert(dateValue.toISOString());
不過這回我下面的錯誤 「toISOString是不是一個函數」
這是爲什麼?
我把日期作爲一個字符串,然後試圖將其轉換爲ISO。toISOstring不能在JavaScript中工作
這是我一直在做:
var dateValue = "Tue Sep 29 2015 16:50:00 GMT+0530 (IST)"
alert(dateValue.toISOString());
不過這回我下面的錯誤 「toISOString是不是一個函數」
這是爲什麼?
這是爲什麼?
becase的你dateValue
是串和toISOString
是不是字符串(它是日期)的方法。
要使用它,您需要一個Date
對象。有不保證在規格說明中,您顯示的格式將被JavaScript內置的任何內容成功解析,因此您需要使用確實做出的保證來解析它:無論是您自己的代碼還是像MomentJS這樣的圖書館。
有問題的格式是很容易分析,如果它的穩定:
var months = {
jan: 0,
feb: 1,
mar: 2,
apr: 3,
may: 4,
jun: 5,
jul: 6,
aug: 7,
sep: 8,
oct: 9,
nov: 10,
dec: 11
};
var dateValue = "Tue Sep 29 2015 16:50:00 GMT+0530 (IST)";
var rex = /^.{4}(.{3}) (\d{2}) (\d{4}) (\d{2}):(\d{2}):(\d{2}) GMT([+-]\d{4})/;
var data = dateValue.match(rex);
snippet.log("Day: " + data[2]);
snippet.log("Month: " + months[data[1].toLowerCase()]);
snippet.log("Year: " + data[3]);
snippet.log("Hour: " + data[4]);
snippet.log("Minute: " + data[5]);
snippet.log("Second: " + data[6]);
snippet.log("Offset: " + data[7]);
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
...然後只需使用new Date(year, month, ...)
構造函數來創建的日期,並據此調整時間偏移量(確保在Date
上使用UTC方法)。
這是因爲'toISOString()'由'Date'對象暴露,而不是字符串。 –
docs https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString – KeepMove