日期時間處理是程式設計基礎,Flex/AIR/Flash AS3 主要使用 Date 類與 Timer 類。本筆記整構構建實例化方式、屬性存取、格式化輸出、Timer 事件驅動、時間戳轉換、時區偏移等核心知識點。
var now:Date = new Date(); → 當地時間當前日期時間。var d:Date = new Date(1000*60*60*24*365); → 1970/1/1 起經過毫秒對應日期(顯示為當地時區)。var d:Date = new Date(2012, 0, 1, 0, 0, 0, 0); → 年、月(0-11)、日、時、分、秒、毫秒。var d:Date = new Date("Mon May 1 2006 11:30:00 AM"); → 嘗試解析字串(不推薦,格式易出錯)。var d:Date = new Date(); 為例)d.fullYear // 年 (如 2024)
d.month + 1 // 月 (0-11 → 需 +1)
d.date // 日 (1-31)
d.day // 星期 (0=日 ~ 6=六)
d.hours // 時 (0-23)
d.minutes // 分 (0-59)
d.seconds // 秒 (0-59)
d.milliseconds // 毫秒 (0-999)
timer.text = '當前時間:' + d.fullYear + '年' + (d.month+1) + '月' + d.date + '日 ' + d.hours + ':' + d.minutes + ':' + d.seconds;
var myTimer:Timer = new Timer(1000, 60); // 間隔 1000ms,執行 60 次(不填次數則無限)
myTimer.addEventListener(TimerEvent.TIMER, onTimer);
myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete);
myTimer.start();
function onTimer(e:TimerEvent):void {
// 每秒執行一次
}
function onComplete(e:TimerEvent):void {
// 60 次結束後執行
}
Date.parse("2012/06/01 12:05:52") → 字串轉毫秒時間戳(靜態方法)。date.time → 該 Date 實例的毫秒時間戳。date.timezoneOffset() → 當地與 UTC 時間差(分鐘),處理跨時區必備。getTimer() → 程式啟動至今經過毫秒(效能計時、遊戲迴圈常用)。Timer + Date)。getTimer() 差值法)。date.time),顯示時轉當地時區。timezoneOffset 換算)。熟練掌握 Date 與 Timer,是 Flash/Flex/AIR 開發時間相關功能的基石。