2010-09-10 55 views
1

我們有一個搜索實用程序,需要按日期搜索:靈活日期問題與時區

因此,我在搜索字段中鍵入日期「04-20-1982」。在代碼:

Alert.show("string date::"+message.searchKeyword); 

dateOfBirth = DateField.stringToDate(message.searchKeyword,"MM-DD-YYYY"); 

Alert.show("date::"+dateOfBirth); 

第一個提醒打印爲字符串日期:: 1982年4月20日

第二警報打印爲日期::週二4月20日00:00:00 GMT-0400 1982年

問題是我們的時區是美國東部時區,因爲它改變爲格林威治標準時間-400,它需要時間爲美國東部標準時間4月19日23:00:00東部標準時間1982年,並沒有返回任何結果。在DB中的實際DOB是4月20日1982.

所以,請讓我知道如何避免這種轉換爲GMT -400時區,只是發送一個日期沒有任何時區。

感謝

哈里什

+0

另一個奇怪的是有一個與DOB 2010年4月10日(虛擬數據)的患者,並通過搜索這個日期正確地返回結果! – Harry 2010-09-10 16:00:05

回答

5

日期被轉移到/從Flex客戶端爲UTC日期 - 沒有可用的時區信息。轉移到UTC /本地時間自動在協議級別發生。

您可以使用這樣的事情來獲得偏移和手動計算日期:

var dNow:Date = new Date(); 
     trace("Your time zone offset: " + dNow.getTimezoneOffset() + " minutes"); 
+0

謝謝你的迴應,託德。我在幾分鐘內得到了timezoneoffset,並將這些分鐘添加到日期和瞧,我得到了正確的結果。不知道這是否是正確的解決方案,但它適用於我! – Harry 2010-09-10 19:10:39