Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 新日期的日期无效(“YYYY-MM-DDThh:MM:ss”);实例_Javascript_Date_Datetime_Titanium Mobile - Fatal编程技术网

Javascript 新日期的日期无效(“YYYY-MM-DDThh:MM:ss”);实例

Javascript 新日期的日期无效(“YYYY-MM-DDThh:MM:ss”);实例,javascript,date,datetime,titanium-mobile,Javascript,Date,Datetime,Titanium Mobile,我正在使用Tianium,它是一个基于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

我正在使用Tianium,它是一个基于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)

我必须在结尾将该字符串与当前日期进行比较,但现在我必须首先将该字符串转换为日期,但我想知道为什么这不起作用。

您正在尝试解析UTC日期时间。在Tianium中,当您尝试解析日期时,它将返回无效的日期。所以您需要将其转换为datetime字符串。您可以选择将字符串拆分为分隔符-,和:,并将每个结果数组项传递给日期构造函数

试试下面的方法

function FormatDate(date)
{   
    var arr = date.split(/[- :T]/), // from your example var date = "2012-11-14T06:57:36+0000";
    date = new Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], 00);
    newDate = date.toString("MMMM");
    //.. do further stuff here  
}

请看一看。您的问题与上面的链接类似。谢谢!此函数中的split方法FormatDate(date){var arr=date.split(//-:T]/);//来自您的示例var date=“2012-11-14T06:57:36+0000”///Ti.API.error(“++*//+++arr:+arr”);返回新日期(arr[0],arr[1]-1,arr[2],arr[3],arr[4],00)}已经解决了我的问题,现在我得到了当前日期和从字符串中得到的日期(毫秒),但我无法比较它们。我向上投票,但意外地向下投票。请将该函数粘贴为答案,我将其标记为正确答案