1. PHP / Говнокод #16260

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    $exp_date=$item['expiration_date'];
    list($date,$time)=explode(' ',$exp_date);
    list($day,$month,$year)=explode('/',$date);
    echo $day.'.'.$month.'.'.$year.' '.$time;

    работа с датой
    преобразования из
    05/12/2013 11:12:00
    в
    05.12.2013 11:12:00

    Запостил: icevic1, 30 Июня 2014

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

    • А 05/13 он в 05.13 преобразует?
      Ответить
    • > 05/12/2013 11:12:00 -> 05.12.2013 11:12:00
      Странное преобразование... В пиндосском варианте месяцы же на первом месте.
      Ответить
    • s/\/\./g
      Ответить
      • s/\//./g

        fixed, но лучше

        s/(\d\d)\/(\d\d)\/(\d\d(\d\d)?)\/$1.$2.$3/g
        Ответить
        • Ох, точно.

          А лучше s/([\d]{1,2})\/([\d]{1,2})\/([\d]{1,4})/$1\.$2\.$3/g
          Ответить
          • не нужно экранировать точки в шаблоне замены и выделять \d как символьную группу
            s/(\d{1,2})\/(\d{1,2})\/(\d{1,4})/$1.$2.$3/g
            Ответить
            • Спасибо, не знал.

              Продолжаем идти глубже:
              s/([01]?\d)\/([0-3]?\d)\/(\d{0,3})/$1.$2.$3/g
              Ответить
              • s/\{0,3\}/{1,4}/g, конечно же.
                Ответить
                • А вдруг 15/36/2000 ?
                  Ответить
                  • Где-то тут уже проскакивала регулярка, проверяющая даты. Зрелище не для беременных и детей...
                    Ответить
                    • >>Беременных и детей.

                      Это пересечение? )
                      Ответить
                      • Вот регулярка: http://stackoverflow.com/questions/51224/regular-expression-to-match-valid-dates/8768241#8768241

                        Это объединение. Внезапно, но в русском его можно обозначать через "и" (а пересечение было бы безо всяких там союзов: "беременных детей"). А разговорное "или" часто вообще используется как xor...
                        Ответить
                        • Регулярку раздуло.
                          Ответить
                        • не страшно.

                          Отдельный вид говнокода, даже антипаттерн "забивание гвоздей отверткой"
                          Ответить
                        • >>А разговорное "или" часто вообще используется как xor...

                          Нам будут долго предлагать - не прогадать.
                          - Ах! - скажут,- что вы, вы еще не жили!
                          Вам надо только-только начинать... -
                          Ну, а потом предложат: или-или.

                          Или пляжи, вернисажи или даже
                          Пароходы, в них наполненные трюмы,
                          Экипажи, скачки, рауты, вояжи...
                          Или просто - деревянные костюмы.
                          Ответить

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