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