Количество дней между датами

12
B
На сайте с 14.04.2012
Offline
35
1415

Приветствую Подскажите как реализовать на php такой алгоритм:

указывается две даты и нужно посчитать кол-во дней между ними при условии, что в каждом месяце 30 дней

O
На сайте с 29.05.2008
Offline
195
#1

<?php
$date_obj = date_diff(date_create($_GET['start']), date_create($_GET['end']));
$out = $date_obj->format("Years:%Y,Months:%M,Days:%d,Hours:%H,Minutes:%i,Seconds:%s");
var_dump($out);
?>
B
На сайте с 14.04.2012
Offline
35
#2

не то..........

O
На сайте с 29.05.2008
Offline
195
#3

bimbo, почему?

date('jnY', strtotime($date_start) - strtotime($date_end));

Или нужно именно 30 дней?

B
На сайте с 14.04.2012
Offline
35
#4

да. вот смотрите. указываю например 21 ФЕВРАЛЯ 2013 и 2марта. чтобы в феврале 2 дня прибавило(до 30), а например месяцы между 2х дат где по 31 день, наоборот убирало -1 день

O
На сайте с 29.05.2008
Offline
195
#5

bimbo, а смысл в реализации велосипеда, если date_diff это делает автоматически? Если вам еще нужно "опционально" накинуть пару дней, это можно сделать так:

switch (date('n', $date_start)) {

case 2:

$result += 2;

}

B
На сайте с 14.04.2012
Offline
35
#6

datediff не робит

O
На сайте с 29.05.2008
Offline
195
#7

PHP ниже 5.3?

IL
На сайте с 20.04.2007
Offline
435
#8

(time2-time1)/(3600*24) = разница в сутках (т.е. днях из первого поста)

time1,2 получаем функцией mktime

Извраты (так и не понял, что нужно, а главное - зачем?) по добавлению "бонусных" дней в зависимости от количества месяца можно реализовать массивом №месяца=>бонус. (помним про високосные года)

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
B
На сайте с 14.04.2012
Offline
35
#9
ivan-lev:
(time2-time1)/(3600*24) = разница в сутках (т.е. днях из первого поста)
time1,2 получаем функцией mktime

Извраты (так и не понял, что нужно, а главное - зачем?) по добавлению "бонусных" дней в зависимости от количества месяца можно реализовать массивом №месяца=>бонус. (помним про високосные года)

$days=floor((strtotime("$date2")-strtotime("$date1"))/86400); вот такой штукой получаю кол-во дней.

блинский блин..меня как раз именно интересует пример цикла который бы бегал провеярл даты..технически не могу представить как такое реализовать

rbbumfirst
На сайте с 03.04.2009
Offline
87
#10


$dateStart = strtotime("2013-05-01");
$dateEnd = strtotime("2013-05-10");

while ($dateEnd > $dateStart) {
$dateEnd = $dateEnd - (24 * 60 * 60);
echo "day\r\n";
}

Вы про это?

Web developer (http://rudov.com). разработка на Go, ReactJS, React Native
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий