tags:

views:

151

answers:

5

i have a date entry in yyyy-mm-dd format in mysql database. Using php i could get the date value

$row = $myresult['date'];

now i wish to alert this value in javascript

so i tried

var temp_date = <?php echo($row)?>;
alert (temp_date);

but that didn't work for me. The problem i feel i am facing is to maintain the string format of the datestring, which seems to be getting lost when used in javascript. Any help?

A: 

You have to add quotes to your JavaScript variable assignation:

var temp_date = '<?php echo($row)?>';
alert (temp_date);
CMS
A: 
var temp_date = '<?php echo($row)?>';
alert (temp_date);

Add quotes. Otherwise it will error because strings without quotes are troublesome.

Chacha102
A: 

Use json_encode(). This will turn PHP variables into valid javascript, so you don't have to worry about quoting/escaping etc.

var temp_date = <?php echo json_encode($row); ?>;
alert (temp_date);
Tom Haigh
Maybe you could explain what json_encode actually does.
Luca Matteis
yeah, sorry, i was being an idiot
Tom Haigh
+4  A: 

String literals are sorrounded by double or single quotes in JavaScript:

var temp_date = "<?php echo($row)?>";
alert (temp_date);
Luca Matteis
thanks, i was using VSPhp as the editor and it was reporting a syntax error when i typed the line, that made me wonder if my approach was right. It worked like a charm!
Anirudh Goel
A: 

This answer originally was a quasi exact copy of the other four first.

If you need the date information as such, you could use Unix timestamps:

SELECT UNIX_TIMESTAMP(timefield) AS timestamp WHERE id = 1;

then just echo it in PHP into this JS snippet:

var mydate = new Date(<?php echo $row['timestamp']*1000; ?>);

You don't need quotes here, since you echo a number. This allows for, e.g.,

alert (mydate.getDate());

and the such.

Cheers,

Boldewyn