将PHP日期格式化为javascript仍然失败

时间:2015-05-09 03:25:19

标签: javascript php date

我使用以下内容获得预期格式的服务器时间:

date_default_timezone_set("Pacific/Honolulu");
$date = date("D M d Y H:i:s O");

在PHP文件中,我将它作为窗口变量传递给javascript:

echo "<script type='text/javascript'> window.jsDate = '". $date ."';</script>";

js按预期记录:

var rightNow = window.jsDate;
console.log("right now: " + rightNow);
Result: right now: "Fri May 08 2015 17:13:36 -1000"

但是,当我尝试将其用作日期var date1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0);时,我仍然收到以下错误:

Uncaught TypeError: rightNow.getFullYear is not a function

即使它们打印相同,也许它的格式不正确?我能做些什么才能做到这一点?

注意:如果我使用var rightNow = new Date();而不是拉动窗口变量,我就不会收到错误。

1 个答案:

答案 0 :(得分:0)

您收到此错误的原因是$date = date("D M d Y H:i:s O");未创建 JavaScript 日期对象。它会创建一个 PHP Date (您使用'转换为字符串)。你需要将它包装在JS Date构造函数中,如下所示:

echo "<script type='text/javascript'>window.jsDate = new Date('". $date ."');</script>";

然后window.jsDate将成为JS Date对象,您可以使用getFullYear()上的rightNow函数。