在JavaScript中的PHP日期功能

时间:2013-08-01 10:30:47

标签: php javascript

在此我发布了一个问题,其中我使用的是java脚本和PHP代码,并使用PHP的时间函数发回时间戳。让代码,

<?php
session_start();
echo time();
?>

<html>
<head>
    <title>my app</title>
    <script type="text/javascript" src="jquery-2.0.2.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $(this).mousemove(function(){
                var time_=new Date();

                var time=<?php echo time();?>;
                alert(time);
                $.post('loggout.php',{input: time});
            });
        });

    </script>
</head>
<body>
    <h2>we are on the main_session</h2>
</body>
</html>

现在的问题是,当我移动鼠标而不是mousemove事件进入操作并显示var time的值时。但每次它显示相同的值。该值仅在我重新加载页面时更改。所以请让我知道它背后的原因以及如何使这个动态

3 个答案:

答案 0 :(得分:0)

这是因为PHP只运行一次 - 当页面加载时。因此,Javascript time变量将填充PHP返回的时间,然后永远不会更改。

如果您很高兴获得客户端时间,请使用:

 var time = time.getTime();

而不是var time=<?php echo time();?>;

否则,您可以使用AJAX发送一个运行某些PHP的查询,返回时间并将其放入变量中。

例如,您可以尝试这样的事情:

$.get('getTime.php', function(data) {
    time = data;
});

getTime.php中,只是回应时间。

答案 1 :(得分:0)

这是因为PHP是后端编程语言,一旦你的页面加载时间戳写入代码并且不能动态。但是你可以发送JS时间戳:

var time = Math.round(+new Date() / 1000);

+将日期对象转换为整数)

var time = Math.round(new Date().getTime() / 1000);

需要除以1000,因为JS使用毫秒

请参阅MDN上的Date参考。

答案 2 :(得分:0)

将此javascript代码放在您的php文件中的任何位置。

<script type="text/javascript">    
    var currenttime = '<?php echo date("F d, Y H:i:s"); ?>' //PHP method of getting server date    
    var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
    var serverdate=new Date(currenttime)

function padlength(what){
   var output=(what.toString().length==1)? "0"+what : what
   return output
}

function displaytime(){
   serverdate.setSeconds(serverdate.getSeconds()+1)
   var datestring=montharray[serverdate.getMonth()]+" "+padlength(serverdate.getDate())+", "+serverdate.getFullYear()
   var timestring=padlength(serverdate.getHours())+":"+padlength(serverdate.getMinutes())+":"+padlength(serverdate.getSeconds())
   document.getElementById("servertime").innerHTML=timestring
}
window.onload=function(){
setInterval("displaytime()", 1000);
}
</script>

在想要显示当前时间的位置添加span或div。无需重新加载页面。

 <span id="servertime"></span>