1

Тема: Розрахунок часу

всім доброго дня! Розпочав писати онлайн-гру... типу ферми на php.. В ході розробки виникла проблема.. Потрібно зробити розрахунок часу до кінця росту рослини... Ніяк не зрозумію як це зробити. Була думка заносити в базу час посадки і потім віднімати від часу який зараз цей час.. Але цей алгоритм не працюватиме з рослинами які ростуть більше доби... Або якщо посадити в 23:59 то нічого не вийде... Допоможіть будь-ласка організувати

2

Re: Розрахунок часу

можна записати дату і час
2015-07-03 13:18:00

але краще в таймстампі ;)

Подякували: Nirvana_Code1

3

Re: Розрахунок часу

funivan написав:

можна записати дату і час
2015-07-03 13:18:00

але краще в таймстампі ;)

всерівно не розумію як обєднати

4

Re: Розрахунок часу

Nirvana_Code написав:
funivan написав:

можна записати дату і час
2015-07-03 13:18:00

але краще в таймстампі ;)

всерівно не розумію як обєднати

в БД тип DATETIME і порівняння дати можна робити в самій БД при вибірці. В умові.

5

Re: Розрахунок часу

у вас є дві дати:
коли почалась подія 2015-07-03 13:18:00
і теперішня 2015-07-03 14:12:00

Ви можете сказати яка різниця у часі?
якщо так - зробіть це у коді
якщо ні  - пора братись за логіку

6 Востаннє редагувалося VTrim (03.07.2015 14:04:58)

Re: Розрахунок часу

$TimePlant = new DateTime('01.01.2016 12:00'); //дата призначення в DATETIME
$now = new DateTime();
$diff = $TimePlant->diff($now);
if($diff->format('%r')) {
   echo $diff->format('Рослина виросте через %y років, %m місяців, %d днів, %h годин, %i хвилин, %s секунд');
}
else {
   echo 'Рослина виросла';
}
Подякували: Nirvana_Code1

7

Re: Розрахунок часу

VTrim написав:
$TimePlant = new DateTime('01.01.2016 12:00'); //дата призначення в DATETIME
$now = new DateTime();
$diff = $TimePlant->diff($now);
if($diff->format('%r')) {
   echo $diff->format('Рослина виросте через %y років, %m місяців, %d днів, %h годин, %i хвилин, %s секунд');
}
else {
   echo 'Рослина виросла';
}

Величезне дякую

8

Re: Розрахунок часу

Якщо ж у вас дата в TIMESTAMP, то можна просто конвертувати в DATETIME і вже потiм потім передати в об'єкт DateTime

$dateTimeStamp = 1441290073; //приклад timestamp дати
$dateStr = date('j.m.Y H:i:s', $dateTimeStamp); //конверт
$TimePlant = new DateTime($dateStr); //передаємо

9 Востаннє редагувалося quez (03.07.2015 19:31:18)

Re: Розрахунок часу

Хорошим тоном вважається використовувати timestamp скрізь, крім користувацького інтерфейсу. При відніманні чи додаванні одного числа до іншого у вас подібних проблем просто не могло б виникнути.

Подякували: Анатолій, Nirvana_Code, Vo_Vik, bees4

10

Re: Розрахунок часу

Таймспемп рулить.