我将日期存储在MySQL表的datetime
列中。我正在通过调用MySql's 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;
这给了我正确的约会。
答案 0 :(得分: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语句可以转换为时间戳,ActionScript Date
构造函数将从纪元开始接受毫秒数。
CASA Lib等框架具有很好的日期实用功能。