Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > вопрос по датам


Автор: motorway 25.4.2008, 14:14
Есть дата в формате Y-M-D H:M:S
Также есть число, выражающее количество дней, которые нужно прибавить к первой дате, чтобы получить вторую.
Нужно найти новую дату, с точностью до минут.

Например, есть

2008-01-01 00:00:00 + 1.75 = 2008-02-01 18:00:00

Как это сделать на PHP?

Автор: Feldmarschall 25.4.2008, 14:18
проще это сделать на mysql. хотя я не уверен, что она работает с добными днями...
а на пхп - mktime тебе в руки.

Автор: motorway 25.4.2008, 14:22
я видел эту функцию, но что-то пока не понял, как сделать вышеприведенное  smile 

Автор: Feldmarschall 25.4.2008, 14:27
все примеры - в http://php.net/date
ну, и немного напрячься, чтобы освоить для себя понятие unix timestamp? почитав про него, к примеру, в википедии

Автор: motorway 25.4.2008, 14:30
вроде можно сделать так, что сначала берется число секунд от 1970/1/1 для первой даты, потом прибавляется число секунд интервала, и получаем второе число секунд от 1970/1/1. Вопрос теперь - как обратно перевести это число в точную дату с минутами?

Автор: Feldmarschall 25.4.2008, 14:37
ребят. ну ладно, я понимаю, что вас ваши задачи не интересуют. Это дяде с форума они нужны. Это он будет за вас все читать, объяснять, искать, уговаривать.
Но хотя бы из вежливости ссылку прочесть можно?

Автор: motorway 25.4.2008, 14:41
да я уже сижу несколько часов читаю это

Автор: Feldmarschall 25.4.2008, 14:45
если на чтение описания одной функции пхп у тебя уходит несколько часов, то к пенсии ты, возможно, освоишь этот язык.
отличное будет хобби на старости лет 

Автор: motorway 25.4.2008, 14:56
время уходит на решение задачи, а не только на чтение одной функции. Ладно, как справлюсь - так напишу

Автор: YAAP 25.4.2008, 17:37
Код

echo $d="2008-01-01 00:00:00";  // начальная дата
echo '<br>'; // перевод строки
$n=1.75*24*60*60; // преобразовываем число в количество секунд
$n=strtotime($d)+$n; // до заданого количества секунд прибавляем таймстамп начальной даты
echo date('Y.m.d H:i:s', $n);  // выводим дату обратно из таймстампа в норм вид...

Автор: motorway 25.4.2008, 18:35
вот еще проблема возникла, но все силы уже исчерпаны - как вывести, какой будет день, начиная от 01.01.08 00 часов через N дней? Например, при 1 должны получить "2008-01-02 00:00:00", т.е. второе января.

Автор: awers 26.4.2008, 01:50
motorway, емае.. ну в мануале примеров ГОРА!  smile 

Автор: Feldmarschall 26.4.2008, 08:07
не понял. а чем эта задача отличается от предыдущей?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)