"PHP" / Говнокод #2811 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
<?php
function daybefore($j){
$day = date('d');
$month = date('m');
$year = date('Y');
for ($i=0; $i<$j; $i++) { 
if ($day==1) {
    if ($month == 1) {
        $day = 31;
        $month = 12;
        $year = $year - 1;
    } else {
        $month = $month - 1; 
        switch ($month) {
            case 01:
                $maxdays=31;
                break;
            case 02:
                $a = $year / 4;
                $b = ceil($a);
                if ($a==$b){                
                     $maxdays=29;
                } else {
                      $maxdays=28;
                }
                break;
            case 03:
                $maxdays=31;
                break;
            case 04:
                $maxdays=30;
                break;
            case 05:
                $maxdays=31;
                break;
            case 06:
                $maxdays=30;
                break;
            case 07:
                $maxdays=31;
                break;
            case 08:
                $maxdays=31;
                break;
            case 09:
                $maxdays=30;
                break;
            case 10:
                $maxdays=31;
                break;
            case 11:
                $maxdays=30;
                break;
            case 12:
                $maxdays=31;
                break;
        }
        $day = $maxdays;
        $year = $year;
    }
} else {
    $day = $day - 1;
    $month = $month;
    $year = $year;
}}
return "$year-$month-$day";
}
echo daybefore(3);
?>

Отсюда:
http://php.net/manual/en/function.date.php

Запостил: hdkeeper hdkeeper, (Updated )

Комментарии (12) RSS

  • И доверяй после этого примерам с оф.сайта >(
    Ответить
  • Прорекаю пользу от
    $maxdays = 29 - ( bool ) ( $year % 4 );
    Вместо деления, округления, сравнения. При желании допиливается под дополнительное условие (делится на 400, не делится на 100).
    Ответить
  • Функция вычитывает что?
    Вчерашний день?
    Тогда не легче date('d',strtodate('yestarday'));
    Ответить
  • И что мешаеть использовать Unix-формат даты??? С ним же намного проще работать. И вчерашний день высчитать как
    $yesterday = date('U', mktime(false,false,false, date('d'), date('m'), date('Y')) - (60*60*24);
    Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8