我正在使用 Titan,它是一个基于 JavaScript 的移动开发框架。
我有一个数组,其中的单元格中包含一个表示“YYYY-MM-DD HH:mm:ss”格式的“日期和时间”字符串的字符串(NightsArray[i][3] 返回:2014-02-20 23:00:00)如稍后控制台所示。
在此页面中它显示了带有多个参数的 Date() 对象的多个构造函数:
var today = new Date();
var birthday = new Date("December 17, 1995 03:24:00");
var birthday = new Date("1995-12-17T03:24:00");
var birthday = new Date(1995,11,17);
var birthday = new Date(1995,11,17,3,24,0);
正如您所看到的,与我的数组字符串最接近的构造函数是第三个:
var birthday = new Date("1995-12-17T03:24:00");
在下面的代码中,我将尝试使用一些 substr() 方法将字符串格式化为“YYYY-MM-DDThh:mm:ss”形式,并将结果字符串(连接后)传递给 Date() 构造函数,但我得到了控制台日志中显示“无效日期”。
Ti.API.error("+*///+++NIGHT DATE & TIME(string) : "+NightsArray[i][3]);
Ti.API.error("+*///+++NIGHT DATE & TIME(string)substr(0,10) : "+NightsArray[i][3].substr(0,10));
Ti.API.error("+*///+++NIGHT DATE & TIME(string)substr(11,10) : "+NightsArray[i][3].substr(11,10));
Ti.API.error("+*///+++"+NightsArray[i][3].substr(0,10)+"T"+NightsArray[i][3].substr(11,10));
var nightDateNTime = new Date(NightsArray[i][3].substr(0,10)+"T"+NightsArray[i][3].substr(11,10));
Ti.API.error("+*///+++ CURRENT DATE nightDateNTime(Date): "+nightDateNTime);
var d = new Date();
Ti.API.error("+*///+++ CURRENT DATE : "+d);
这是控制台日志:
[ERROR] :+*///+++NIGHT DATE & TIME(string) : 2014-02-19 23:00:00
[ERROR] : +*///+++NIGHT DATE & TIME(string)substr(0,10) : 2014-02-19
[ERROR] : +*///+++NIGHT DATE & TIME(string)substr(11,10) : 23:00:00
[ERROR] : +*///+++2014-02-19T23:00:00
[ERROR] : +*///+++ CURRENT DATE nightDateNTime(Date): Invalid Date
[ERROR] : +*///+++ CURRENT DATE : Mon Feb 17 2014 11:09:09 GMT+0100 (CET)
我必须在最后将该字符串与当前日期进行比较,但现在我首先必须将该字符串转换为日期,但我想知道为什么这不起作用..