jQuery と UI の日付ピッカーで問題が発生しています。
基本的に、新しいイベント フォームに 3 つのフィールドがあります: Date、timeFrom、timeTo SQL データベースに 3 つのフィールド: Date(datetime)、timeFrom(time)、timeTo(time)
日付フィールドは datepicker で選択され、次のように送信されます: 3/19/13 timeFrom と timeTo は timepicker プラグインで選択され、次のようになります: 06:20 am AND 07:20 am
私の SQL データベースでは、送信されたデータは次のようになります: 2013-03-19 , 06:20:00.0 , 07:20:00.0
同じイベントを編集するまでは、これで問題ありません。データベースから呼び出して入力を再度入力すると、最終的に次のようになります。
日付: {ts '2013-03-19 00:00:00'}
timeFrom: 1970-01-01 06:20:00.0
timeTo: 1970-01-01 07:20:00.0
したがって、これは、日付ピッカーもタイムピッカーもこれらの値を認識していないことを意味します。また、日付をリセットせずにフォームを再度送信すると、コードでエラーがスローされます。
したがって、jquery を使用してページの読み込み時に入力フィールドを変更し、正しくフォーマットされ、次のように表示されるようにする必要があると考えました。
$(function() {
//datefix
var thisdatevalue = $("input[name='event[eventdate]']").val();
var day1 = $("input[name='event[eventdate]']").val().getDate();
var month1 = $("input[name='event[eventdate]']").val().getMonth();
var year1 = $("input[name='event[eventdate]']").val().getFullYear();
var fullDate = day1 + "/" + month1 + "/" + year1;
$("input[name='event[eventdate]']").val(fullDate);
//timefix
var thistimefromvalue = $("input[name='event[timefrom]']").val();
var hour1 = $("input[name='event[timefrom]']").val().getHours();
var minute1 = $("input[name='event[timefrom]']").val().getMinutes();
var second1 = $("input[name='event[timefrom]']").val().getSeconds();
var fullTime = hour1 + ":" + minute1 + ":" + second1;
$("input[name='event[timefrom]']").val(fullTime) ;
//timefix
var thistimetovalue = $("input[name='event[timeto]']").val();
var hour2 = $("input[name='event[timeto]']").val().getHours();
var minute2 = $("input[name='event[timeto]']").val().getMinutes();
var second2 = $("input[name='event[timeto]']").val().getSeconds();
var fullTime = hour2 + ":" + minute2 + ":" + second2;
$("input[name='event[timeto]']").val(fullTime) ;
});
ただし、上記のコードは TypeError: $(...).val(...).getDay is not a function is not a function をスローしています。
私はそれが私のためにトリックを行うべき標準のjavascript関数だと思いました。
これを達成する方法についてのアイデアはありますか?
ありがとう!