将包含日期和时间的PHP变量传递给javascript的正确方法


Correct method on passing PHP variables that contains date and time to javascript

我对传递包含日期的PHP变量有点困惑按钮的onclick属性,例如…(出于某种原因,我把按钮放在echo中)

<?php
$date = date("F-d-Y", "2015-07-24"); //to convert the string 2015-07-24 to date with an specific format
echo "<button onclick = 'goToThisJSMethod(".$date.")'> Pass </button>";
?>

,其中goToThisJSMethod的javascript部分。

function goToThisJSMethod(dateRec){
 alert (dateRec);
} 

上面的语法没有结果,警告框也没有出现

我试着改变上面的代码,我改变了将在PHP上传递的参数,而不是使用$date变量,我使用日期的确切字符串作为参数,并像这样改变javascript:

function goToThisJSMethod(dateRec){
    var date = new Date(dateRec);
    alert(date.getMonth()+1 " " + date.getDate() + " " + date.getFullYear());
}

是的,这里有一个结果,但是再次,它返回默认日期1/1/1970。对于这个问题我该怎么办?

最大的问题是date()的第二个参数必须是时间戳,因此需要使用strtotime。你总是会得到"January-01-1970"因为你给它传递了一个字符串,而它需要一个时间戳。

您可能还需要在字符串周围加上引号,如下所示。查看浏览器中呈现的HTML。

<?php
$date = date("F-d-Y", strtotime("2015-07-24")); 
echo "<button onclick='"goToThisJSMethod('{$date}')'"> Pass </button>";
?>

我转换你的html使用"和PHP使用变量插值