2

日時の値を含む編集フォームを投稿するときに問題が発生しました。getTimeZonOffset で localdatetime を設定するスクリプトがあります。データベースのutc時間をlocaltimeで表示したいのは初めてです。問題は、datetimepicker でフォームを編集したいときです。新しい値がデータベースに保存され、ユーザーが送信ボタンを押すたびに、ローカルタイムが再度追加されます。

これを回避するにはどうすればよいですか?

  $(function () {
    // Determine timezone offset in milliseconds
 var d = new Date();
 var offsetms = d.getTimezoneOffset() * 60 * 1000;

    $('.UTCTime input').each(function () {
        try
        {     
            var text = $(this).val();
            var n = new Date(text);
            n = new Date(n.valueOf() - offsetms);

            var curr_date = n.getDate();
            var curr_month = n.getMonth() + 1; //Months are zero based
            var curr_year = n.getFullYear();
            var curr_hour = n.getHours();
            var curr_minutes = n.getMinutes();

            $(this).val(curr_year + "/" + curr_month + "/" + curr_date + " " + curr_hour + ":" + curr_minutes);

        }
        catch (ex) {
            console.warn("Error converting time", ex);
        }
    });
});

 $(function () {
$(".datetimepicker input").datetimepicker({
    dateFormat: "yy/mm/dd",
    showTime: true,
});
});

 <div class="span3 value UTCTime datetimepicker">
4

2 に答える 2

1

スクリプトを編集すると、すでに保存されている値が上書きされるようです

日時の値を設定するときに何らかのチェックを追加して、オーバーライドしないようにする必要があります

if( !$(this).val() ) {
      $(this).val(curr_year + "/" + curr_month + "/" + curr_date + " " + curr_hour + ":" + curr_minutes);
}

他のデフォルト値がある場合は、if 条件を変更する必要があるかもしれません

于 2012-12-18T15:57:44.357 に答える
0

データベースでユーザー ID とタイムゾーンの一意のインデックスを作成します。つまり、現在のタイム ゾーンを更新できる同じユーザーに対して再入力することはできません。

mysql db がある場合は、重複キーの更新時にテーブルへの挿入を使用します....

これが正しい考えを与えることを願っています。

于 2012-12-18T15:21:00.540 に答える