2010-09-10 53 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