[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблемка с датами
Renden
Привет,с пятничкой вас :)
Таг пашед:

$date_today = 2010-12-10;
$date_begin = 2010-12-04;
$date_end = 2010-12-19;
$summ_day = $date_end - $date_begin;
$day_left = $date_today - $date_begin;
echo $day_left / $summ_day;

Таг нэд(

while ($row = mysql_fetch_array($q)) {
$summ_day = $row['date_end'] - $row['date_begin'];
$day_left = $date_today - $row['date_begin'];
echo $day_left / $summ_day;
}

Я что-то непойму почему он из базы нехочет вычитать? $summ_day = 0 (
Sanchopansa
Ну если честно я не нашел описание твоей задачи.. Что именно ты хочешь сделать? То что тебе нужно вычислять даты я понял.

В твоем первом примере все работает потому что даты указаны как числа.. а из базы они возвращяются как строки!

ПС: И если хочешь чтоб тебя все правильно поняли не используй свой г0вно язык.. а пиши по русский или по английский smile.gif
nugle
может вначале нужно так сделать
while ($row = mysql_fetch_array($q)) {
$row['date_end']=(ind)$row['date_end'];
$row['date_begin']=(ind)$row['date_begin'];
$summ_day = $row['date_end'] - $row['date_begin'];
$day_left = $date_today - $row['date_begin'];
echo $day_left / $summ_day;
}
Renden
Sanchopansa
За говноязык сорри, привычка дурная уже. Да мне нужно посчитать % от сегодняшнего дня (относительно периода)... хм, а как из базы тогда преобразовать строки в чила? (раньше этого делать не приходилось)
nugle
Цитата

syntax error, unexpected T_VARIABLE in .. line 9
9) $row['date_end']=(ind)$row['date_end'];
nugle
конечно
while ($row = mysql_fetch_array($q)) {
$row['date_end']=(int)$row['date_end'];
$row['date_begin']=(int)$row['date_begin'];
$summ_day = $row['date_end'] - $row['date_begin'];
$day_left = $date_today - $row['date_begin'];
echo $day_left / $summ_day;
}
Renden
nugle
Ну теперь опять 0 (
Warning: Division by zero in bla-bla
Sanchopansa
Вся проблема в том что ты пытаешься с датами работать как с числами..

Почитай про функции работы с датой (strtotime, date, microtime)
Sanchopansa
Вот тебе пример для соображений
$d1 = '2010-12-20';
$d2 = '2010-12-31';
echo floor((((strtotime($d2) - strtotime($d1))/60)/60)/24);
Renden
Sanchopansa
Просто пипец дикое извращение, но спасибо, получилось, работает)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.