您如何比较客户日期和服务器日期?

时间:2012-07-24 13:00:10

标签: javascript jquery jsp

我有一个代码来运行以从日历中选择日期,但我想在所提到的日历中将current_date设置为服务器的日期。并且具有将client_dateserver_date进行比较的功能。

4 个答案:

答案 0 :(得分:2)

这是可能的。正如其他地方所建议的那样,您应该将日期转换为字符串有两个原因:

  1. 搜索错误时更易于阅读/理解
  2. 客户端和服务器之间的“当前时间”总是不同
  3. 要将当前日期发送到客户端,您可以使用隐藏的表单字段或AJAX请求或Web服务或REST或JSON或JSONP,或者......有太多方法可以执行此操作。

    要比较日期,请将字符串转换为Date对象,然后使用常用方法对它们进行比较(Java中的compareTo()<==,{{ JavaScript中的1}}。

答案 1 :(得分:1)

您可以使用以下方式执行此操作:

在Java中

public class YourJavaClass{
 public static String getServerDate()
 {
    Calendar cal = Calendar.getInstance();

    return cal.get(Calendar.YEAR) + "-" + cal.get(Calendar.MONTH) + "-" + cal.get(Calendar.DATE);
 }
}

在jsp中

$('input.datepicker').datepicker(
{
    minDate : new Date(<%out.print(YourJavaClass.getServerDate());%>)
});

答案 2 :(得分:0)

这样做的一种方法是将当前日期从服务器脚本传递到模板,因此当页面呈现时,javascript可以访问它并进行比较。这有明显的问题 - 如果用户将页面打开到第二天,则日期将过时。

其他方法是对后端使用异步调用并从那里获取日期。

答案 3 :(得分:0)

最简单的方法是将两个日期与会话比较到毫秒。两种语言都为它提供了方法。

<强>使用Javascript:

<script type="">
  var myDate = new Date();
  var milliseconds = myDate.getTime();
</script>

Java(JSP):

<script type="text/javascript">
<%!
    Date myJavaDate = new Date();
    long myJavaMilliseconds = 0L;
    myJavaMilliseconds = myJavaDate.getTime();
%>
 var myJavaMillisondsInJs = <%= myJavaMilliseconds %>;
</script>

/ *在此处输入代码以比较这些日期* /

如果你想比较服务器的日期,你必须通过Ajax或表格将javatime提交给服务器。