问题
I have a PHP script that outputs an array of data. This is then transformed into JSON
using the json_encode()
function.
My issue is I have a date within my array and its is not in the correct javascript format. How can I convert this within PHP so it is?
$newticket['ThreadID'] = $addticket;
$newticket['Subject'] = $subject;
//$newticket['DateCreated'] = date('d-m-Y G:H');
Instead of the above fo rthe date I need the equivilant of the javascript function
new Date()
When I output the above I get the following "Fri Jun 01 2012 11:08:48 GMT+0100 (GMT Daylight Time)" However, If I format my PHP date to be the same, javascript rejects it. Confused...
Can anyone help?
回答1:
You should probably just use a timestamp
$newticket['DateCreated'] = strtotime('now');
Then convert it to a Javascript date
// make sure to convert from unix timestamp
var now = new Date(dateFromPHP * 1000);
回答2:
Javascript Date class supports ISO 8601 date format so I would recommend:
<?php
date('c', $yourDateTime);
// or for objects
$dateTimeObject->format('c');
?>
documentation says that:
format character 'c' is ISO 8601 date (added in PHP 5)
example: 2004-02-12T15:19:21+00:00
for more information: http://php.net/manual/en/function.date.php
回答3:
It is pretty simple.
PHP code:
$formatted_date = $newticket['DateCreated'] = date('Y/m/d H:i:s');
Javascript code:
var javascript_date = new Date("<?php echo $formatted_date; ?>");
回答4:
Is very simple, I'm use this:
new Date("<?= date('Y/m/d H:i:s'); ?>");
回答5:
$newticket['DateCreated'] = date('d-m-Y G:H', strtotime($phpDateVariable));
回答6:
If you want to be more precise with your timestamp, you should use microtime() instead of now().
That gives you:
echo round(microtime(TRUE)*1000);
For a milisecond, javascript-like timestamp in php.
来源:https://stackoverflow.com/questions/10837022/convert-php-date-into-javascript-date-format