2016-11-23 2 views
0

Я хочу, чтобы график для ежедневных часов работы в браузере. В диаграмме упоминаются каждый день, посвященные часам. Когда я нажимаю кнопку, время запускается и снова нажимает кнопку, и время заканчивается и, наконец, вычисляется время начала до конца, хранящееся как в сеансе, так и в любом другом. Это произойдет в течение трех дней, и, наконец, диаграмма будет сгенерирована.Как сохранить сеанс при нажатии кнопки запуска, чтобы снова щелкнуть кнопку окончания времени для вычисления начала и окончания времени в php

HTML КОД:

<html> 
    <body> 
     <form action="time_calculation.php" method="POST"> 
      <input type="submit" name="start" value="Start"> 
      <br><br> 
      <input type="submit" name="end" value="End"> 
     </form> 
    </body> 
</html> 

PHP:

<?php 
session_start(); 
if(isset($_POST['start'])) { 
    date_default_timezone_set('Asia/Calcutta'); 
    $time_start=date("Y-m-d h:i:s A"); 
    $_SESSION['start']='$time_start'; 
    echo "time start now ".$time_start."<br>"; 
} 

if(isset($_POST['end'])) { 
    date_default_timezone_set('Asia/Calcutta'); 
    $time_end=date("Y-m-d h:i:s A"); 
    $_SESSION['end']='$time_end'; 
    echo "time was ended".$time_end."<br>"; 
    $sst=strtotime($_SESSION['start']); 
    $eet=strtotime($_SESSION['end']); 
    $diff=$eet-$sst; 
    $timeelapsed=mktime("h:i",$diff); 
    echo $timeelapsed; 
} 
?> 
+0

Какой выход вы получаете? – Luke

+0

Когда я нажимаю кнопку конца, он покажет, что время было закончено2016-11-23 10:58:43 AM Предупреждение: mktime() ожидает, что параметр 1 длинный, строка задана в C: \ xampp \ htdocs \ programs \ time_calculation. php в строке 23 –

+0

Итак, ваша проблема связана с форматом вашего 'mktime()'. Или более конкретно, вы не должны использовать 'mktime()' там. Вы просто хотите снова использовать метод date(). – Luke

ответ

0

Вы можете сохранить активные время сеанса на временной таблицы базы данных и вычислить его в течение 3 дней.

Я не ясно, с вашими требованиями, если вам необходимо отслеживать данные, которые вы можете использовать имеющиеся инструменты, такие как Google analytics

+0

в php, как рассчитать начальное и конечное время в сеансе и отобразить время разности –

+0

Я пытаюсь создать систему отслеживания времени, используя php, в которой у меня есть две кнопки, такие как часы и часы. Я храню часы во времени и таймауту в переменных сеанса. Теперь мое требование - рассчитать разницу между часами во времени и временем выключения. Если у вас есть четкое представление о расчете разницы между временем поделиться мыслями со мной –

0

mktime() используются для создания метки времени из массива входных данных. PHP Man

Я предлагаю вам изменить код, чтобы взять дату с сеанса и вернуть его обратно в объект DateTime. Затем вы можете использовать DateInterval, чтобы получить разницу в DateTime и отформатировать вывод по своему вкусу.

$sst= new DateTime($_SESSION['start']); 
$eet= new DateTime($_SESSION['end']); 
$diff=date_diff($eet, $sst); 
$timeelapsed=$diff->format('%r %a days %h hours and %i minutes'); 
echo $timeelapsed; 

редактировать: РНР также имеет проблемы со ссылкой на переменные. Например. Вы не должны указывать $time_start при попытке присвоить его значение $_SESSION['start']. Он пытается назначить литеральную строку, а не объект даты, назначенный переменной.

редактировать 2: Вот полный код (изменено на одной странице формы/PHP)

<?php 
session_start(); 

?> 

<html> 
    <body> 
     <form action="thisForm.php" method="POST"> 
      <input type="submit" name="start" value="Start"> 
      <br><br> 
      <input type="submit" name="end" value="End"> 
     </form> 
    </body> 
</html> 

<?php 
if(isset($_POST['start'])) { 
    date_default_timezone_set('Asia/Calcutta'); 
    $time_start = date("Y-m-d h:i:s A"); 
    $_SESSION['start'] = $time_start; 
    echo "time start now $time_start <br>"; 
} 

if(isset($_POST['end'])) { 
    date_default_timezone_set('Asia/Calcutta'); 
    $time_end = date("Y-m-d h:i:s A"); 
    $_SESSION['end'] = $time_end; 
    echo "time was ended $time_end <br>"; 
    $sst= new DateTime($_SESSION['start']); 
    $eet= new DateTime($_SESSION['end']); 
    $diff = date_diff($eet, $sst); 
    $timeelapsed = $diff->format('%r %a days, %h hours, %i minutes and %S seconds'); 
    echo $timeelapsed; 
} 
?> 
+0

это будет показано ... 0 день 0 часов 0 минут .it не рассчитывает разницу между начальным и конечным временем –

+0

@ j.mani это было проверена и на самом деле, именно то, что она делает. – Luke

+0

Я только заметил, что комментарий можно прочитать в любом случае. Мой код был протестирован. И снова был протестирован. Оно работает. – Luke

Смежные вопросы