I have a PHP script that outputs an array of data. This is then transformed into JSON
using the json_encode()
function.
My issue
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);
The most robust way is to extend your date object to parse strings as objects that your application can use. A quick example of parsing the mysql datetime string
DateFromString(str){
let months = ["January", "Febuary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
let date = str.split(" ")[0];
let time = str.split(" ")[1];
let [Y, M, d] = [date.split("-")[0], date.split("-")[1], date.split("-")[2]];
let [H, m, s] = [time.split(":")[0], time.split(":")[1], time.split(":")[2]];
return {
FullYear: Y,
Month: M - 1,
MonthString: months[M - 1],
Date: d,
Time: {Hour: H, Minute: m, Second: s},
};
}
If you are inclined you may include a second parameter that describes the type of string being passed with a default value, and do a string test to determine if it is a unix timestamp or a javascript timestamp or a string, and then use the returned object to parse your date and times, this is a more rounded solution because it will allow you to build an interface that dynamically handles multiple date specifiers.
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.
Is very simple, I'm use this:
new Date("<?= date('Y/m/d H:i:s'); ?>");
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; ?>");
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