Перейти к содержимому

Сервис обмена электронных валют


PHP-функция для вычисления разницы между датами

#11 FordogeN

FordogeN
    Topic Starter
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0
0

Отправлено 07 Январь 2010 - 20:22

Вот функция
function is_today($date)
{
	$timestamp = strtotime($date); // получаем метку времени из переданной даты (из строки даты в метку)
	$date = getdate($timestamp); // получаем массив информации о переданной дате
	$now = getdate(); // получаем массив информации о текущей дате
	return $now['mday'] == $date['mday'] && $now['mon'] == $date['mon'] && $now['year'] == $date['year'] ? true : false;
}

  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#12 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 07 Январь 2010 - 20:28

В следующий раз выделяй нормальными bb-кодами, а то нечитаемо
Я же тебе сказал, что эта функция для сравнения дат на равенство, используй другую из поста #8
isNewDate_first, если хочешь работать с первым вариантом, и isNewDate, если со вторым.
  • 0

#13 FordogeN

FordogeN
    Topic Starter
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0

Отправлено 07 Январь 2010 - 20:31

ок, щаз до ем и по пробую.
зы. Я коды перепутал


  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#14 FordogeN

FordogeN
    Topic Starter
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0

Отправлено 07 Январь 2010 - 21:03

Используя isNewDate только год перебирает... может и месяц, но пропускает 8 и 19 января.
isNewDate_first пропускает год и месяц - считает только числа.
  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#15 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 07 Январь 2010 - 21:48

FordogeN, У меня первый вариант работает стабильно:
function isNewDate_first($date)
{
$timestamp = strtotime($date); // получаем метку времени из переданной даты (из строки даты в метку)
$date = getdate($timestamp); // получаем массив информации о переданной дате
$now = getdate(); // получаем массив информации о текущей дате

if( $date['year'] >= $now['year'] )
if( $date['mon'] >= $now['mon'] )
if( $date['mday'] >= $now['mday'] ) return true;

return false;
}

$date1 = "2010-01-07"; // Задаём в виде YYYY-mm-dd HH:ii:ss, я сократил до YYYY-mm-dd
if( isNewDate_first($date1) ) echo "new";
else echo "old";


Даты пробовал разные:
2010-01-07 - new
2010-03-07 00:00:00 - new
2010-01-06 23:00:00 - old
2009-01-06 23:00:00 - old

Мне кажется, у тебя $array['date'] имеет вид dd/mm/YYYY HH:ii:ss, если да, то в год лишок попадает
  • 0

#16 FordogeN

FordogeN
    Topic Starter
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0

Отправлено 08 Январь 2010 - 00:48

Нет, у меня все правильно.
Думаю дело в настройках php на хостинге т.к. этот вариант тоже работает как и все остальные.
  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#17 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 08 Январь 2010 - 23:50

FordogeN, а на локалке не пробовал? Дай знать.
  • 0

#18 FordogeN

FordogeN
    Topic Starter
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0

Отправлено 08 Январь 2010 - 23:57

Нет. У меня винда загибается и серв не пашет на компе, а перебить винду не могу - диска нету.


  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#19 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 09 Январь 2010 - 00:02

FordogeN, возможно на серваке нет одной из функций strtotime или getdate, проверить можно с помощью функции function_exists()
Возможно локали дат не стоят нужны, но это навряд ли.
Попробуй распечатать массивы $now и $date
...
echo "<pre>";
print_r($now);
print_r($date);
echo "</pre>";
...

Это внутри функции, дебаг :)
  • 0

#20 FordogeN

FordogeN
    Topic Starter
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0

Отправлено 09 Январь 2010 - 00:37

debug_backtrace, верно?
<?php
echo debug_backtrace(
echo "<pre>";
print_r($now);
print_r($date);
echo "</pre>";
);
?>

  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru