У меня есть столбец базы данных с типом данных «время», в котором хранится 11:30:45. Я на этот раз набрал переменную
$databasetime = 11:30:45
Я хочу объявить переменную say $currenttime
которая будет содержать время только сейчас. Как и его 11:33:30 прямо сейчас и другая переменная, которая будет содержать их разницу в секундах, как
$timediff = $currenttime - $databasetime; echo $timediff;
Я пытаюсь $currenttime = time();
но я не получаю результат, который желаю. Я хочу $timediff = 165
но когда я эхо время (), я получаю очень большое значение.
$databasetime = strtotime('11:30:45'); $curtime = time(); echo $curtime - $databasetime;
Вы можете сделать это следующим образом:
$databasetime = '11:30:45'; $time1 = strtotime($databasetime); $time2 = strtotime('now'); $diff = $time2 - $time1; echo 'your difference: '.date('H:i:s', $diff);
$datetime1 = new DateTime('10:35:56 2013-11-17'); $datetime2 = new DateTime('10:35:50 2013-11-17'); $interval = $datetime1->diff($datetime2); echo $interval->m . " Month " .$interval->d ." Days ". $interval->h . " Hours, " . $interval->i." Mintues, ".$interval->s." seconds <br/>";
<?php $currentTime = time(); $futureDateTime = new DateTime('11:30:45'); // might want to specify a date and timezone, system TZ by default $futureTime = $futureDateTime->format('U'); // get unix timestamp $timeDiff = $futureTime-$currentTime; ?>
Вы используете методы DateTime 'OO' для непосредственного получения целых чисел unix timestamp
<?php $now = new DateTime('now'); $date = new DateTime('11:30:45'); echo $now->getTimestamp() - $date->getTimestamp(); ?>
Вот простой пример.
$databasetime = '11:30:45'; $timedif = abs(strtotime('now') - strtotime($databasetime)); echo $timedif; //echos the difference in seconds.
abs
используется только для предотвращения отрицательных чисел, которые вы можете или не хотите делать.
Моя проблема решена сейчас. На самом деле все ответы правильные, но проблема связана с часовым поясом по умолчанию. Мне нужен часовой пояс Азия / Калькутта, но выбор европейского часового пояса по умолчанию. Вот почему я не получил желаемых результатов.
Итак, я, наконец, использую ниже код:
date_default_timezone_set('Asia/Kolkata'); $databasetime = strtotime('11:30:45'); $curtime = time(); echo $curtime - $databasetime;