3

current_dateカレンダーから日付を選択するために実行するコードがありますが、上記のカレンダーのサーバーの日付に設定したいと思います。に匹敵する機能を備えていclient_dateますserver_date

4

4 に答える 4

2

それは可能です。他の場所で提案されているように、次の 2 つの理由から日付を文字列に変換する必要があります。

  1. バグを検索するときに読みやすく/理解しやすい
  2. 「現在時刻」はクライアントとサーバーで常に異なります

現在の日付をクライアントに送信するには、非表示のフォーム フィールド、AJAX リクエスト、Web サービス、REST、JSON、JSONP などを使用できます。

日付を比較するには、文字列をオブジェクトに変換してからDate、通常の方法を使用してそれらを比較します ( compareTo()Java<では==>JavaScript では , )。

于 2012-07-24T13:22:52.323 に答える
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());%>)
});
于 2012-07-24T13:12:01.190 に答える
0

これを行う1つの方法は、サーバースクリプトからテンプレートに現在の日付を渡すことです。これにより、ページがレンダリングされるときに、javascriptがそれにアクセスして比較を行うことができます。これには明らかな問題があります。ユーザーが翌日までページを開いたままにしておくと、日付が古くなります。

もう1つの方法は、バックエンドへの非同期呼び出しを使用して、そこから日付を取得することです。

于 2012-07-24T13:05:57.270 に答える
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 をサーバーに送信する必要があります。

于 2012-07-24T13:12:51.323 に答える