1

次のようにYahoo UIのカレンダーを使用しています:

calDate = (calDate.getMonth() + 1) + '/' + calDate.getDate() + '/' + calDate.getFullYear();

フォーマットを表示しMMDDYYYYます。

YYYY-MM-DDMySQL データベースに挿入できるように、この形式を に変更したいと考えています。コードを次のように変更しました。

calDate = calDate.getFullYear() + '-' + (calDate.getMonth() + 1) + '-' + calDate.getDate();

それはうまくいきましたが、問題は、選択した日付を変更したいときに、カレンダーに日付が表示されず、代わりにNAN.

4

4 に答える 4

4

通常は、日付を UNIX タイムスタンプとしてバックエンドに渡し、データベース自体で変換するのが最善です。サーバーの POST データを作成するコードでは、次のようなものを渡します。

var t = calDate.getTime()/1000;

1000 で除算することに注意してください。MySQL では秒が必要なのに対し、javascript のタイムスタンプはミリ秒単位であるため、これが必要です。

SQL ステートメントでは、タイムスタンプをそのまま渡し、FROM_UNIXTIME 関数を使用して必要な形式に変換します。

INSERT INTO ... VALUES ( FROM_UNIXTIME($t), ...)

t当然のことながら、javascript から$tバックエンド スクリプトに変換し、それを SQL に渡すコードが間にあります。

フロントエンドで日付をフォーマットする必要がある場合は、便利なYAHOO.util.Dateユーティリティを利用できます。次のようなことをしてください:

alert(YAHOO.util.Date.format(calDate, {format: "%Y-%m-%d" }));

を呼び出すよりもはるかに簡単でgetFullYear, getMonthgetDate

于 2009-03-10T22:18:18.503 に答える
3

bluesmoon は YUIBlog で、日付のフォーマットに関する 2 つの優れた記事も書いています。

  1. http://yuiblog.com/blog/2009/02/11/date-formatting-pt1-2/
  2. http://yuiblog.com/blog/2009/02/25/date-formatting-pt2/

-エリック

于 2009-03-10T22:29:12.627 に答える
0
            cal1.cfg.setProperty("DATE_FIELD_DELIMITER", "-");

            cal1.cfg.setProperty("MDY_YEAR_POSITION", 1);
            cal1.cfg.setProperty("MDY_MONTH_POSITION", 2);
            cal1.cfg.setProperty("MDY_DAY_POSITION", 3);
于 2011-10-05T23:23:59.413 に答える