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?
-
As the fifth in a row to provide the very same answer allow me to withdraw mine.Boldewyn– Boldewyn2009年08月03日 14:36:16 +00:00Commented Aug 3, 2009 at 14:36
6 Answers 6
String literals are sorrounded by double or single quotes in JavaScript:
var temp_date = "<?php echo($row)?>";
alert (temp_date);
1 Comment
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,
Comments
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);
Comments
You have to add quotes to your JavaScript variable assignation:
var temp_date = '<?php echo($row)?>';
alert (temp_date);
Comments
var temp_date = '<?php echo($row)?>';
alert (temp_date);
Add quotes. Otherwise it will error because strings without quotes are troublesome.
Comments
.php
$smarty->assign("profile_date",date("Y/m/d"));
.tpl
var NowDate=new Date("{/literal}{$profile_date}{literal}");