我需要能够从当前日期减去2小时,8小时,1天和1周。
然后转换为yyy-mm-dd hh:mm:ss格式。
到目前为止,我一直没有成功。
在actionscript中执行此操作的正确方法是什么?
答案 0 :(得分:1)
这里有一些选项,但我认为在您的情况下最简单的解决方案是使用毫秒。您可以使用+ =和 - =来修改日期的当前毫秒值。最棘手的是将值转换为毫秒。以下是一些例子:
var myDate:Date; //assuming this is a actual date value.
//subtract 2 hrs
var twoHoursInMilliseconds:int = 2 * 60 * 60 * 1000; //2 hours * 60 minutes * 60 seconds * 1000 milliseconds (in a second)
myDate.milliseconds -= twoHoursInMilliseconds;
//subtract 1 day
var oneDayInMilliseconds:int = 1 *24 * 60 * 60 * 1000;
myDate.milliseconds -= oneDayInMilliseconds;
对于格式化,您需要使用以下方法:
trace(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds());
希望这能指明你正确的方向,
快乐的编码!
编辑:更新了修复错误的代码。
答案 1 :(得分:0)
我同意Tyler以毫秒为单位处理日期的方法。 对于转换,您可能还希望使用DateFormatter,如下所示。
var dateFormatter:DateFormatter = new DateFormatter(); dateFormatter.formatString ='yyy-mm-dd hh:mm:ss'; var formattedDate:String = dateFormatter.format(d); 迹(formattedDate);
愿望, 发亮的。
答案 2 :(得分:0)
只需更改日期/小时的UTC值。
var d:Date = new Date();
d.dateUTC -= 1; //subtract one day
d.hoursUTC -= 1; //subtract one hour
然后使用Tyler的trace语句跟踪输出。
trace(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds());
有关Date类的更多信息,请查看http://help.adobe.com/en_US/AS3LCR/Flash_10.0/Date.html