2

我将日期存储在datetimeMySQL 表的列中。我通过调用MySql 的 UTC_CURRENTDATE来插入当前日期。当我检索它时,它采用以下字符串格式: "2012-07-24 12:59:58"

当我尝试通过执行以下操作在 Action Script 中创建 Date 对象时:

var dateNum:Number = Date.parse(createDate); // this gives me NaN
var createDate:Date = new Date(dateNum);

Date.parse("2012-07-24 12:59:58")NaN

解决方案:按照 Jason 的建议,我正在执行以下操作:

选择一个UNIX_TIMESTAMP (CREATE_DATE),它返回自 '1970-01-01 00:00:00' UTC 以来的秒数。然后在 Actionscript 中执行以下操作:

var createDate:Date = new Date();
var offset:Number = createDate.getTimezoneOffset() * 60 * 1000; 
createDate.time = parseInt("1343174921") * 1000 - offset;

这给了我正确的日期。

4

1 回答 1

3

虽然我确信有一种更优雅的方法;显然你可以实现一个解析函数,例如:

public static function parse(date:String):Date
{
    var split:Array = date.split(" ");
    var splitDate:Array = split[0].split("-");
    var splitTime:Array = split[1].split(":");

    return new Date(splitDate[0],
                    splitDate[1] - 1,
                    splitDate[2],
                    splitTime[0],
                    splitTime[1],
                    splitTime[2]);
}

称为:

var date:Date = parse("2012-07-24 12:59:58");

而不是处理 MySQL DATETIME,您的 SQL 语句可以转换为 ActionScriptDate构造函数将接受自纪元以来的毫秒数的时间戳。

CASA Lib等框架具有很好的日期实用功能。

于 2012-07-24T15:01:17.380 回答