データの配列を出力するPHPスクリプト。これはjson_encode()
関数を使用してJSON
に変換されます。
私の問題は、配列内に日付があり、正しいJavaScript形式ではないことです。これをPHPそうですか?
$newticket['ThreadID'] = $addticket;
$newticket['Subject'] = $subject;
//$newticket['DateCreated'] = date('d-m-Y G:H');
上記の日付の代わりに、javascript関数の同等のものが必要です
新しいDate()
上記を出力すると、「2012年6月1日金曜日11:08:48 GMT + 0100(GMT夏時間)」と表示されますが、PHP日付が同じになるようにフォーマットすると、 javascriptはそれを拒否します。
誰でも助けることができますか?
おそらくタイムスタンプを使用する必要があります
$newticket['DateCreated'] = strtotime('now');
次に、それをJavascriptの日付に変換します
// make sure to convert from unix timestamp
var now = new Date(dateFromPHP * 1000);
Javascript DateクラスはISO 8601日付形式をサポートしているため、次のことをお勧めします。
<?php
date('c', $yourDateTime);
// or for objects
$dateTimeObject->format('c');
?>
文書によると:フォーマット文字 'c'はISO 8601の日付(PHP 5)に追加)
例:2004-02-12T15:19:21 + 00:00
とても簡単です。
PHPコード:
$formatted_date = $newticket['DateCreated'] = date('Y/m/d H:i:s');
JavaScriptコード:
var javascript_date = new Date("<?php echo $formatted_date; ?>");
非常に簡単です、私はこれを使用しています:
new Date("<?= date('Y/m/d H:i:s'); ?>");
$newticket['DateCreated'] = date('d-m-Y G:H', strtotime($phpDateVariable));
タイムスタンプをより正確にしたい場合は、now()の代わりにmicrotime()を使用する必要があります。
それはあなたに与えます:
echo round(microtime(TRUE)*1000);
ミリ秒のphpのjavascriptのようなタイムスタンプ。