Дата в виде date("Y-m-d").
Спустя 11 минут, 46 секунд (28.05.2010 - 15:20) Basili4 написал(а):
Function DateDiff ($interval,$date1,$date2)
{
$arrdate1 = explode("-",$date1);
$arrdate2 = explode("-",$date2);
$timestamp2 = (mktime(0, 0, 0, $arrdate2[1], $arrdate2[0], $arrdate2[2]));
$timestamp1 = (mktime(0,0, 0, $arrdate1[1], $arrdate1[0], $arrdate1[2]));
switch($interval)
{
case "d": return floor(($timestamp2 - $timestamp1)/86400);
case "w": return floor(($timestamp2 - $timestamp1)/(604800));
case "m": return ($arrdate2[2]-$arrdate1[2])*12+($arrdate2[1]-$arrdate1[1]);
}
}
С тебя + в карму :-)
Спустя 1 минута, 22 секунды (28.05.2010 - 15:21) DedMorozzz написал(а):
А если это не то, что надо а нужно проще, то минус?
Цитата |
Разницу в днях между двумя датами в формате UNIX timestamp можно сверить, используя такую конструкцию: код PHP bcdiv($date1 - $date2, 86400); Чтобы получить сегодняшнюю дату в UNIX timestamp - можно использовать функцию time(); Чтобы получить UNIX timestamp, можно пойти двумя способами: 1) взвалить это задание на MySQL 2) используя хитрости ПХП. Я бы посоветовал первый вариант т.к. он проще. Для этого: код SQL SELECT ..., UNIX_TIMESTAMP(date), ... FROM ... |
А в чём получать разницу, выставить в знаменателе.
Спустя 4 минуты, 59 секунд (28.05.2010 - 15:26) Basili4 написал(а):
Можно и проще но зато моя функция универсальная.
Спустя 32 секунды (28.05.2010 - 15:27) DedMorozzz написал(а):
выше написал пример. Отредактировал
Спустя 13 минут, 47 секунд (28.05.2010 - 15:40) gorillaz написал(а):
Fatal error: Cannot redeclare datediff()
Он вот это ошибку выдает!
Он вот это ошибку выдает!
Спустя 4 минуты, 8 секунд (28.05.2010 - 15:44) Basili4 написал(а):
Есть уже функция datediff
Спустя 11 минут, 32 секунды (28.05.2010 - 15:56) gorillaz написал(а):
Так ладно, я уже без нее сделал)
Спустя 56 минут, 34 секунды (28.05.2010 - 16:53) gorillaz написал(а):
Объясните пожалуйста! Почему после этого кода
Выводится нормальный результат как идолжен! 15
А здесь он выводит! 806
$dat=2010-05-13;
$date= 2010-05-28;
$arrdate1 = explode("-",$dat);
$arrdate2 = explode("-",$date);
$timestamp2 = (mktime(0, 0, 0, $arrdate2[1], $arrdate2[2], $arrdate2[1]));
$timestamp1 = (mktime(0,0, 0, $arrdate1[1], $arrdate1[2], $arrdate1[1]));
echo floor(($timestamp2 - $timestamp1)/(86400));
Выводится нормальный результат как идолжен! 15
$dat=2010-03-13;
$date= 2010-05-28;
$arrdate1 = explode("-",$dat);
$arrdate2 = explode("-",$date);
$timestamp2 = (mktime(0, 0, 0, $arrdate2[1], $arrdate2[2], $arrdate2[1]));
$timestamp1 = (mktime(0,0, 0, $arrdate1[1], $arrdate1[2], $arrdate1[1]));
echo floor(($timestamp2 - $timestamp1)/(86400));
А здесь он выводит! 806
Спустя 3 минуты, 57 секунд (28.05.2010 - 16:56) Basili4 написал(а):
Я нверное устал но я невижу в двух кусках кода отличий
Спустя 1 минута, 41 секунда (28.05.2010 - 16:58) DedMorozzz написал(а):
А так:
$dat=2010-05-13;
$date= 2010-05-28;
$dat=2010-03-13;
$date= 2010-05-28;
Спустя 9 минут, 16 секунд (28.05.2010 - 17:07) DedMorozzz написал(а):
не хочет он подсказывать =)
Держи "правильную версию":
Держи "правильную версию":
$dat="2010-03-13";
$date= "2010-05-28";
$arrdate1 = explode("-",$dat);
$arrdate2 = explode("-",$date);
$timestamp2 = (mktime(0, 0, 0, $arrdate2[1], $arrdate2[2], $arrdate2[0]));
$timestamp1 = (mktime(0,0, 0, $arrdate1[1], $arrdate1[2], $arrdate1[0]));
echo floor(($timestamp2 - $timestamp1)/(86400));
Спустя 20 минут, 14 секунд (28.05.2010 - 17:28) gorillaz написал(а):
DedMorozzz Если отличие только в кавычках, то не то! Эти даты я просто написал, одна у меня из базы берется, а другая -сегодняшняя дата!
Спустя 1 минута, 8 секунд (28.05.2010 - 17:29) gorillaz написал(а):
Сори! Я слепой!
Спустя 3 минуты, 24 секунды (28.05.2010 - 17:32) DedMorozzz написал(а):
С кавычками не будет лишь нотисов. Я в коде исправил ошибку.