|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
Как узнать разницу в днях между 2-мя датами? Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2010, 13:42 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
Можно решить вот так, кому интересно: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2010, 14:01 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
MegaLasta, А еще лучше привыкать к новому PHP, с человеческим лицом :) Начиная с 5.2 (а лучше с 5.3): Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2010, 14:37 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
Поддержу товарища The employer, порекомендую так же познакомиться с классами DateInterval (начиная с 5.3.0), DatePeriod (начиная с 5.3.0), DateTimeZone (начиная с 5.2.0). Появление новых классов повляло на набор функций для работы со временем. Появились функции-алиасы для методов этих классов. К примеру date_diff() - алиас для DateTime::diff, date_interval_format() - алиас для DateInterval::format Для работы с календарём - расширение Calendar (устанавливается отдельно) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2010, 21:39 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
функция diff класса DateTime работает криво как-то (по крайней мере у меня :) ) т.е. если взять 25 января 2010 минус 12 декабря 2009 выдаст 13 дней. Хотя на самом деле это где-то 44 дня. Я пользуюсь вот такой штукой: $sDate1 = "2010-01-25" $sDate2 = "2009-12-12"; echo (strtotime($sDate1) - strtotime($sDate2))/3600/24; выводит то что надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2012, 19:01 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
leva©, Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2012, 19:23 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
leva©функция diff класса DateTime работает криво как-то (по крайней мере у меня :) ) т.е. если взять 25 января 2010 минус 12 декабря 2009 выдаст 13 дней. Хотя на самом деле это где-то 44 дня. Я пользуюсь вот такой штукой: $sDate1 = "2010-01-25" $sDate2 = "2009-12-12"; echo (strtotime($sDate1) - strtotime($sDate2))/3600/24; выводит то что надо. Ну правильно, один месяц и 13 дней) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2012, 19:28 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
leva©Я пользуюсь вот такой штукой: $sDate1 = "2010-01-25" $sDate2 = "2009-12-12"; echo (strtotime($sDate1) - strtotime($sDate2))/3600/24; выводит то что надо. Кстати, подскажите, а с "зеркальным" форматом (день-месяц-ГОД) функция strtotime() корректно работает? Потому что в литературе везде упоминается "практически любое текстовое представление (на английском языке)". На вскидку попробовал strtotime('29.02.2012') и др, пока никаких косяков не заметил. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2012, 09:11 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
Вот небольшой скрипт для нахождения разницы дат ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2013, 09:16 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
Вот небольшой скрипт Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74.
11971027 8785287 Код: php 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2013, 11:18 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
Сорри за некропостинг... Странная вещь: $diff=(strtotime('2015-04-29')-strtotime('2015-03-27'))/3600/24; print $diff; Возвращает 32.958333333333 $diff=(strtotime('29.04.2015')-strtotime('27.03.2015'))/3600/24; аналогично. Самое интересное, что с различными другими датами выводит целое нормальное число. Как вариант чисто для собственного развития :) без классов сделал такой вариант, не зависящий от внутренних функций php: $tempday=$start;$t=1; while ($tempday<>$end) {$t++;$tempday=date("d.m.Y",strtotime("+1 day",strtotime($tempday)));} print $t; //формат дат d.m.Y, с таким циклом есть риск подвесить скрипт если не правильно даты подставить ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 14:20 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
sLim80, для внутреннего развития было бы полезнее почитать http://php.net/manual/ru/datetime.diff.php задача "не зависеть от внутренних функций php" для программиста php не кажется мне многообещающей или хоть сколько-нибудь полезной ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 14:42 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
sLim80Странная вещь: $diff=(strtotime('2015-04-29')-strtotime('2015-03-27'))/3600/24; print $diff; Возвращает 32.958333333333Странная у Вас система. Или странная сборка интерпретатора ЯП. Проверил на нескольких машинах с разными версиями PHP - результат одинаков: Код: php 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 15:05 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
vkle, Да нет, это норм поведение видимо Код: php 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 16:45 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
MikkiMousevkle, Да нет, это норм поведение видимо Код: php 1. 2. 3. 4. 5. 6. 7.
метки времени откуда-то берут еще один час(3600) strtotime('2015-04-29')-strtotime('2015-03-27')=(2847600+3600)/3600/24=33 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 17:11 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
kunaksergey, php -r "echo ((gmmktime(0,0,0,04,29,2015)-gmmktime(0,0,0,03,27,2015))/3600/24)" =33 и для 5.3.3 и для 5.6.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 17:31 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
либо так если очень уж хочется $ php -r "echo (strtotime('2015-04-29 UTC')-strtotime('2015-03-27 UTC'))/3600/24;" 33 $php -v PHP 5.6.3 (cli) (built: Nov 12 2014 17:18:08) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 17:35 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
Вопросы по работе с датами помоему никогда не кончатся :) Искал ответы и наткнулся на свой же прошлогодний пост. Если кому интересно, то при нахождении разницы в днях между датами используя diff нужно использовать формат %a - почему-то во многих форумах люди пишут ошибочно %d %a - общее количество дней в качестве результата выполнения DateTime::diff() %d показывает правильно только если разница между датами меньше 1 месяца (если больше, то кол-во месяцев будет сидеть в %m) Вот правильный пример: $date1 = DateTime::createFromFormat('d.m.Y', '15.10.2016'); $date2 = DateTime::createFromFormat('d.m.Y', '20.12.2016'); $diff=$date1->diff($date2)->format("%a"); Заодно сразу натолкнулся на баг. На Windows платформе с php ниже 5.3.2 результат всегда 6015 https://bugs.php.net/bug.php?id=51184 Будьте внимательны и аккуратны ) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2016, 06:07 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
Судя по всему прибавка часа описанная выше связана с переходом на зимнее/летнее время. У кого старый PHP (возможно работающий в среде Windows) некорректно возвращает разницу в датах при использовании diff (всегда 6015) сделал функцию, в ней мы уходим от strtotime и mktime (она работает с учётом часовых поясов, что тоже зачастую приводит к непредсказуемым результатам) //разница в днях между двумя датами в формате 'DD.MM.YYYY' без учёта часовых поясов и переходов на летнее время function DateDiff($a1,$a2) { $d1=explode('.',$a1);$d2=explode('.',$a2); return (gmmktime(0,0,0,$d1[1],$d1[0],$d1[2])-gmmktime(0,0,0,$d2[1],$d2[0],$d2[2]))/3600/24; }; проверил на 3000+ интервалов дат - всегда возвращает целое и адекватное число, в отличие от изложенных выше вариантов на всех версиях php и на разных платформах. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2016, 11:32 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
А подскажите новичку зачем вообще нужна Разница между двумя датами python? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2017, 13:22 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
новый456, быват что нужно, а питон тут не причем ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2017, 13:57 |
|
Узнать разницу в днях между двумя датами.
|
|||
---|---|---|---|
#18+
Вы имеете ввиду, вообще в программировании? Если не сложно можете привести наглядный пример для бестолкового) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2017, 14:00 |
|
|
start [/forum/topic.php?fid=23&fpage=29&tid=1460484]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 133ms |
0 / 0 |