0

以下のような XML 形式で計算された日時を返す Python スクリプトがあります。

<prev><date>2012,07,16</date><time>22:00:00</time></prev>

形式を変更することはできますが、返された値を使用して JS 日付オブジェクトを作成しようとすると、「無効な日付」が表示されるという問題があります。

$.ajax({
        async: false,
        type: "POST",
        url:  "/cgi-bin/prev_hour.py",
        success: function(xml)
        {
                pdate = $(xml).find('date').text();
                ptime = $(xml).find('time').text();
                //alert prints correct date time ex 2012-07-16 22:00:00
        },
        error:function(xhr,err,html)
        {
                alert("Failed\nreadyState: "+xhr.readyState+"\nstatus: "+xhr.status + "\nresponseText: "+xhr.responseText);
        }

var max_date = new Date("'" + pdate + ptime + "'");
alert(max_date);

Pythonスクリプトがさまざまな形式で返されるなど、いくつかの可能性を試しました。

<prev><date>2012/07/16 </date><time>22:00:00</time></prev>
<prev><date>2012,07,16 </date><time>22,00,00</time></prev> 

しかし、JS 日付オブジェクトを作成しようとすると、無効な日付が表示されますか?

正しい実装方法を教えてください。

4

3 に答える 3

0

Moment.jsと呼ばれる日付に素晴らしいlibを使用してみてください

moment("2012/07/16 22:00:00")

そこからあなたは日付ですべてを達成することができます。

于 2012-07-17T07:10:24.540 に答える
0

日付文字列に余分な引用符のセットは必要ありません。日付と時刻のコンポーネントの間にスペースが必要になります。次のことを試してください。

new Date(pdate + " " + ptime);
于 2012-07-17T07:12:12.210 に答える
0

これ:

var max_date = new Date("'" + pdate + ptime + "'");

する必要があります:

var max_date = new Date(pdate + ' ' + ptime);

次にこのような問題が発生したときは、関数に送信する値にアラートを設定して、どのように表示されるかを確認してください。

于 2012-07-17T07:12:28.933 に答える