我使用以下内容获得预期格式的服务器时间:
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();
而不是拉动窗口变量,我就不会收到错误。
答案 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
函数。