2013-08-01 3 views
0

В этом я размещаю вопрос, в котором я использую java-скрипт и PHP-код, и отсылаю временную метку, используя функцию времени PHP. пусть есть код,Функция даты Php в javascript

<?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 событие попадает в действие и отображает значение времени вар. но каждый раз он отображает одно и то же значение. значение изменяется только при перезагрузке страницы. поэтому, пожалуйста, дайте мне знать причину этого и как сделать эту динамику

+2

Отправить метку "вживую" в Javascript, используя [Как вы получаете временную метку в JavaScript?] (Http://stackoverflow.com/q/221294) ('$ .post ('loggout.php ', {input: new Date(). getTime()}); ' –

+0

Зачем пропускать время? Вы не можете рассчитать время в файле logout.php? – JellyBelly

+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, просто эхо времени.

+0

. ..и получил. –

+0

Все работает? :) – SharkofMirkwood

0

Это потому, что PHP является языком программирования на языке и после того, как ваша страница загружена меткой времени, записанной в код, и не может быть динамической. Но вы можете отправить JS метки:

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

(+ преобразует дату объекта в целое число)

или

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

деление на 1000 необходимых потому, что JS использовать миллисекунды.

См. Date ссылка на MDN.

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> 
Смежные вопросы