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

How do you compare the client date and server date?

本文关键字:日期 客户端 服务器 比较 何比较      更新时间:2024-02-22

我有一个代码,用于从日历中选择日期,但我想将current_date设置为上述日历中服务器的日期。并具有client_dateserver_date进行比较的功能。

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

  1. 搜索错误时更易于阅读/理解
  2. 客户端和服务器之间的"当前时间"总是不同的

要将当前日期发送到客户端,您可以使用隐藏的表单字段或 AJAX 请求或 Web 服务或 REST 或 JSON 或 JSONP 或...好吧,方法太多了。

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

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

在爪哇语中

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());%>)
});

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

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>

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

如果你想比较dateas服务器端,你必须通过Ajax或表单将javatime提交给服务器。

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

另一种方法是使用对后端的异步调用并从那里获取日期。