Reputation: 4711
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?
Upvotes: 0
Views: 4755
Reputation: 1
.php
$smarty->assign("profile_date",date("Y/m/d"));
.tpl
var NowDate=new Date("{/literal}{$profile_date}{literal}");
Upvotes: -1
Reputation: 57815
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);
Upvotes: 1
Reputation: 82734
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,
Upvotes: 1
Reputation: 29267
String literals are sorrounded by double or single quotes in JavaScript:
var temp_date = "<?php echo($row)?>";
alert (temp_date);
Upvotes: 4
Reputation: 61557
var temp_date = '<?php echo($row)?>';
alert (temp_date);
Add quotes. Otherwise it will error because strings without quotes are troublesome.
Upvotes: 0
Reputation: 827256
You have to add quotes to your JavaScript variable assignation:
var temp_date = '<?php echo($row)?>';
alert (temp_date);
Upvotes: 0