2014-10-08 47 views
0

我必须在预订成功后将预约的日期和时间保存在数据库中。我已经尝试过如下如何保存客户机时间如果服务器位于不同位置

if(bookingSuccess){ 
DateTime bookingDate = new DateTime(); 
storeDate(bookingDate); 
} 


storeDate(DateTime date){ 

.... 

} 

但它不会工作,如果服务器在一个位置和客户端在另一个位置。请为此提出任何解决方案。在客户端

+0

所以,你有一个web应用常规的客户机 - 服务器架构日期必须

 Date bookingDate=new Date(); iii) transaction.commit(); iV) If error transaction.rollback(); 

3)?此外,你的意思是什么不起作用,你是否会得到一个例外是日期迟到,早期,没有保存......等等。指定请 – user2504380 2014-10-08 13:21:18

+0

是的,我有。问题在于它节省了服务器时间而不是客户端时间。 – 2014-10-08 13:37:49

+0

比你对sumit jain有答案。使用客户端站点脚本来获取时间并将其发送到服务器。很明显,服务器不计算客户端时间。 – user2504380 2014-10-08 13:39:24

回答

0

运行Java脚本代码来获取当前时间

var d = new Date(); 

同时节省了预订的条目,就可以得到用户机器的当前时间,并将其保存在一个变量。如果预订成功,那么节省时间。

步骤:

  • 获取预订信息和客户端的当前时间
  • 节省订票成功后,然后保存客户端的时间,如果服务器和客户端上的不同位置时的预订
+0

不建议依赖于客户端的时钟。客户可能会在几分钟,几小时甚至几年内出错。使用你知道的服务器时钟是正确的。 – 2014-10-08 14:34:34

+0

是的你是对的,我们不应该依赖客户的机器。我们可以做的是获取客户端的时区,然后计算服务器上的时间......对吧? – 2014-10-09 05:43:05

+0

没错。像[mike](http://stackoverflow.com/users/1286621/mike)已经说过的那样,将事件的时间存储在服务器上的UTC时区中。这样您可以轻松地排序所有事件的时间。只有代码向用户显示时间时,它才会将时间转换为用户自己的时区。 – 2014-10-09 13:49:19

0

如果您正在使用关系数据库(Mysql,Oracle,Postgress,Sqlite等)和Java,请执行以下操作:
1)你可以有一个字段booked_time与您booking_details表
2)如果您使用的是像JPA ORM工具DATA_TYPE TIMESTAMP,休眠
我)transaction.begin()
II)插入的预订信息到数据库,如果你不使用ORM 插入到数据库directlu

相关问题