请考虑以下方案,其中包含一个简单的HTML文档和一个JavaScript:
<!-- doc.html -->
<!doctype html>
<html lang="en">
<head>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
</html>
// script.js
window.onload = function()
{
var d = new Date();
d.setHours(<?php echo(date("H")); ?>);
}
这真的很简单,不是吗?
但是,虽然这个coode完美地用于获取当前小时(将作为INT
返回),但如果我尝试接收更复杂的日期/时间格式,则不会如下所示:
var serverTime = <?php echo date("Y-m-d H:i:s"); ?>;
这应编码为1900-01-01 00:00:00
。所以,因为这不是一个法律表达式,我想用引号封装结果:
var serverTime = "<?php echo date("Y-m-d H:i:s"); ?>";
乍一看这应该有效。不幸的是,事实并非如此。 serverTime
只包含一个空字符串。
我做错了什么?
答案 0 :(得分:2)
也许你的时区没有正确设置
尝试
<?
date_default_timezone_set('America/Los_Angeles');
?>
或类似的 - 完整列表可以在这里找到
答案 1 :(得分:0)
没有原因var serverTime = "<?php echo date("Y-m-d H:i:s"); ?>";
不应该返回类似的内容:
var serverTime = "2011-05-12 05:12:56";
检查以确保echo date("Y-m-d H:i:s");
正常工作。
除此之外,代码应该可以正常工作。
见这里:http://codepad.org/3CNx1ch9
输出:http://codepad.org/3CNx1ch9#output
答案 2 :(得分:0)
javascript将不会执行您的PHP代码。 可以这样想: 当页面呈现时,php“用PHP代码的输出替换你的php代码。”
所以基本上这个
var serverTime = '<?php echo date("Y-m-d H:i:s"); ?>';
应呈现为
var serverTime = '2011-11-28 xx:xx:xx';
答案 3 :(得分:0)
我认为你插入参数的方式是错误的。根据{{3}}我认为你应该这样做:
// script.js
window.onload = function()
{
var d = new Date('<?php echo(date("F d, Y H:i:s")); ?>');
d.setHours(<?php echo(date("H")); ?>, <?php echo(date("i")); ?>, <?php echo(date("s")); ?>);
}
语句var d = new Date('<?php echo(date("F d, Y H:i:s")); ?>');
将遵循this。
因为我无法理解为什么php无法发送date()
函数的结果。
答案 4 :(得分:-1)
尝试使用单引号:
var serverTime = '<?php echo date("Y-m-d H:i:s"); ?>';
答案 5 :(得分:-1)
因为您在JavaScript中使用双引号,所以需要在php中使用单引号。
var serverTime = "<?php echo date('Y-m-d H:i:s'); ?>";