За последние 24 часа нас посетили 66739 программистов и 1617 роботов. Сейчас ищут 987 программистов ...

поменять местами

Тема в разделе "PHP для новичков", создана пользователем shalx, 14 май 2014.

  1. shalx

    shalx Новичок

    С нами с:
    15 фев 2014
    Сообщения:
    110
    Симпатии:
    0
    как поменять местами дату
    01-30-2014 Ha 2014-30-01
     
  2. BaranPHP

    BaranPHP Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    356
    Симпатии:
    0
    У тебя дата не правильно хранится надо хранить гггг-мм-дд или гг-мм-дд
    тогда PHP:
    Код (PHP):
    1. <?php 
    2. $date_str = "2014-05-10";
    3. echo date_create($date_str)->Format('d-m-Y');//выведет 10-05-2014
    4. echo date_create($date_str)->Format('d-m-y (d.m.Y) сегодня d число');//выведет 10-05-14 (10.05.2014) сегодня 10 число
    5. ?>
    Можно написать регулярку и на твой вывод дат только на хрена, когда есть готовая функция.

    Добавлено спустя 8 минут 46 секунд:
    мануал
     
  3. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Во первых - это не будет работать, так как у процедур нет объекта, есть только функции, а значит тут нужно не ->Format(), а date_format();
    "Смотришь в книгу видишь фигу" называется...
    А во вторых ему нужно 01-30-2014 преобразовать в 2014-30-01, что собственно критично и даже не спасает echo strtotime('01-30-2014');, на помощь придет велосипед.
     
  4. BaranPHP

    BaranPHP Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    356
    Симпатии:
    0
    Это будет работать только если
    ==
     
  5. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    (ノಠ益ಠ)ノ КДЫЩ!
    Код (PHP):
    1. $date_str = "2014-05-10";
    2. $date_str = $date_str[9].$date_str[8].$date_str[7].$date_str[6].$date_str[5].$date_str[4].$date_str[3].$date_str[2].$date_str[1].$date_str[0];
     
  7. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Не правильно ты, дядяФедор бутерброд жуешь!
    получить: 01-50-4102
    можно и еще более по китайске:
    Код (PHP):
    1. implode(array_map("chr", array_reverse(unpack('C*', '2014-05-10'))));
    2.  
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    жесть

    Добавлено спустя 1 минуту 14 секунд:
    на самом деле я неправильно написал
    Код (PHP):
    1. $date_str = "2014-05-10";
    2. $date_str = $date_str[8].$date_str[9].$date_str[7].$date_str[5].$date_str[6].$date_str[4].$date_str[0].$date_str[1].$date_str[2].$date_str[3]; 
    Вот
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Объявляем специальную олимпиаду открытой? :)
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Тафай! (づ。◕‿‿◕。)づ
     
  11. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Будет исполнено!(с)
    [​IMG]

    Код (PHP):
    1. $date_str = "2014-05-10";
    2. $temp = '';
    3. $count=2;
    4. $result = array();
    5. for ($i = 0, $size = strlen($date_str); $i<$size; $i++){
    6.   if ($date_str[$i]!=='-'){
    7.     $temp .= $date_str[$i];
    8.   }else{
    9.     $result[$count] = $temp;
    10.     $temp = '';
    11.     $count--;
    12.   }  
    13. }
    14. $result[$count] = $temp;
    15. $date_str = '';
    16.  
    17. for ($i = 0; $i<3; $i++){
    18.   $date_str .= $result[$i].'-';
    19. }
    20.  
    21. $date_str = substr($date_str,0,10);
    22.  
    23. echo $date_str;
    24.  
    25.  
    Добавлено спустя 1 минуту 45 секунд:
    Было желание вместо if-else запилить свич с 11 кейсами, 10 из которых олицетворяют проверку на числа, но решил, что это будет слишком даже для индуса.
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я сдаюс (⊙﹏⊙)
    я даже прочитать не могу это. что там происходит?
     
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    1) Сим-салабим.
    2) Ахалай-махалай.
    3)...
    4) PROFIT!!!

    [​IMG]

    Добавлено спустя 1 минуту 16 секунд:
    З.Ы. А если читать этот код нараспев, можно вызвать демона! ◕‿‿◕
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    и не одного
    кто-то уже вызвал походу

    Добавлено спустя 4 минуты 37 секунд:
    а, я понял. ну кстати последний цикл не совсем честно добавил три строки. можно было обойтись одной через имплод.
     
  15. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Код (PHP):
    1. $d = '2014-05-10';
    2. $tmp = sscanf($d,'%04d-%02d-%02d');
    3. $d = sprintf('%20d-%02d-%04d', $tmp[2],$tmp[1],$tmp[0]);
     
  16. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Не, имплод дал бы исходную строку. Индексы у элементов корректные, а вот порядок следования - нет. Тогда для имплода надо юзать реверс. А это уже дважды не по-индусски. Не не не. Долой очевидные средства!
     
  17. shalx

    shalx Новичок

    С нами с:
    15 фев 2014
    Сообщения:
    110
    Симпатии:
    0
    Всем спасибо , тема исчерпана
     
  18. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    теперь нас неостановить
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    implode('-', krsort($array)) ? =)
     
  20. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    вы чо издеваетесь над человеком?

    Код (PHP):
    1. $myDateTime = DateTime::createFromFormat('m-d-Y', '01-30-2014');
    2. echo $myDateTime->format('Y-m-d');
    3.  
     
  21. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Да, забыл про ksort, но с тем же успехом можно было в данном случае поставить на его место реверс. Сути не меняет - все равно слишком просто. Ты забыл, в чем дух индусского программирования.

    Добавлено спустя 37 секунд:
    ну мааааааааам....
    З.Ы. Забыл таймзону прописать.
     
  22. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Ну дык оно ексепшн с пояснением выкинет, там все понятно написано )