看板 Flash 關於我們 聯絡資訊
先附上書上截取的一小段程式: setInterval(worldTime,1000);//每1秒鐘執行worldTime自訂函數1次 function worldTime(){ //使用zoneTime()自訂函數,傳遞參數台灣GMT時差+8,取得台灣目前時間 var hms = zoneTime(8); //畫面上的taipei_txt文字欄位顯示時間 taipei_txt.text = hms[0] + ":" + hms[1]+ ":" + hms[2]; } function zoneTime(GMT){ var watch= new Date(); //利用本地端小時數,及傳遞的GMT參數作不同時區加時,作為時間物件新的小時數資料 watch.setHours(watch.getHours()+ GMT); //將時間物件取得的國際標準時間時、分、秒儲存在陣列中 var hms:Array = [watch.getUTCHours(),watch.getUTCMinutes(),watch.getUTCSeconds()]; return hms; } 請問各位大大,watch.setHours(watch.getHours()+GMT);此行為何要將小時轉為毫秒 且我用trace查看setHours(watch.getHours()+ GMT),與setHours(watch.getHours() 發現值根本一樣啊...這樣GMT不就白加? 還有,國際標準時間應該是固定在跑的,為何hms陣列的內容,還會隨著watch.setHours() 在改變? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.28.56
KawasumiMai:沒寫過類似的東西,不過幫你測試了一下 02/22 18:51
KawasumiMai:於台灣時間18點,將時區改成東京,也就是顯示19點 02/22 18:52
KawasumiMai:trace的結果 02/22 18:52
KawasumiMai:GMT=8 估計他會依照網路位置取得正確時區(台灣的+8) 02/22 18:53
KawasumiMai:getHours = 19 也就是設定的東京時間 02/22 18:53
KawasumiMai:watch.getHours()+GMT = 27 02/22 18:54
KawasumiMai:setHours(watch.getHours()) = 1393095346408 02/22 18:56
KawasumiMai:setHours(watch.getHours()+ GMT) = 1393124146408 02/22 18:56
KawasumiMai:所以並沒有如文中說的一樣,可能你是用台灣時區去測 02/22 18:57
KawasumiMai:另外watch.setHours(watch.getHours()+ GMT)之後 02/22 18:58
KawasumiMai:watch.getUTCHours() 就顯示18點,在這之前會是10點 02/22 18:58
KawasumiMai:估計是格林威治那邊的標準時間,所以問題還是在GMT 02/22 18:59
KawasumiMai:如果使用內定函數會取得國際標準時間跟設定的時區時間 02/22 19:00
KawasumiMai:但是GMT看似會依照位置顯示所在地正確時區 02/22 19:00
KawasumiMai:所以以GMT為標準(setHour)之後則可用函數取得正確時間 02/22 19:01
heavenbetula:感謝K大! 02/22 19:37