views:

379

answers:

2

My goal is to convert a timestamp from MySQL into a JavaScript Date object in an efficient manner. Here is my current snippet that converts the MySQL timestamp into a formatted date in PHP:

<?php
// formats timestamp into following format: 2009, 7, 30
$date =  date("Y, n, j", strtotime($row["date"]));
?>

I am then using this $date value for a chart using Google's charting API which requires JavaScript Date object:

data.setValue(<?=$count;?>, 0, new Date(<?=$date;?>));

The problem is that the JavaScript Date object begins the month index with 0 so the output is always 1 month in advance. What is the most efficient way in dealing with this issue?

Thanks in advance!

+1  A: 

You have to manually subtract that extra 1 from month number I'm afraid. JS Date object is a mess.

RaYell
That is exactly what I was afraid of. I was shocked to have found this out!
Knix
You were shocked to find out JS is a heaping mess of ugly stuff? :D
Svend
+4  A: 

You can feed the Date constructor a date in mm/dd/yyyy or yyyy/mm/dd format and it will convert it:

>>> new Date('7/30/2009');
Thu Jul 30 2009 00:00:00 GMT-0700 (Pacific Daylight Time)
>>> new Date('2009/7/30');
Thu Jul 30 2009 00:00:00 GMT-0700 (Pacific Daylight Time)
Paolo Bergantino
You can use YYYY/MM/DD format too
Peter Bailey
Sweet! It worked. Thanks.
Knix