Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: RegExp
Войти
Регистрация
Восстановить пароль
 
WhiteBoss
0 / 0 / 2
Регистрация: 13.10.2016
Сообщений: 71
1

Работа с датами

21.03.2018, 20:17. Просмотров 183. Ответов 3
Метки нет (Все метки)

Есть задание
В произвольном тексте все даты (в формате DD.MM.YYYY и MM/DD/YYYY, причём день и месяц могут быть однозначными, а год – двузначным) вывести красным цветом, при этом увеличить год на единицу.
PHP
1
2
3
4
$str='aaa2.12.2003aaa45.23.1123aaa12/31/12aaa';
    $string=preg_replace("#(([1-9]|[12][0-9]|3[01])[.]([1-9]|1[012])[.](19|20)?\d\d)#", '<span style="color: red;">$1</span>',$str);
    $string=preg_replace("#(([1-9]|1[012])[/]([1-9]|[12][0-9]|3[01])[/]((19|20)?\d\d))#", '<span style="color: red;">$1</span>',$string);
        echo $string;
С выделением красным цветом нет проблем, проблемы с увеличением на единицу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2018, 20:17
Ответы с готовыми решениями:

Работа с датами
Здравствуйте, форумчане! Есть скрипт, выводящий даты в ячейки таблицы по порядку, прибавляя при...

Определитель какие месяца между двумя датами
Добрый день! Подскажите пожалуйста как можно в PHP определить какие месяца между датами Например...

Работа с датами
Добрый день! В своей процедуре пытаюсь получить от сегодняшней даты: вчерашнюю дату дату в...

Работа с датами
Здравствуйте, у меня есть столбец с датами рождения в DBGride, мне нужно их сортировать по таким...

Работа с Датами
Пытаюсь добавлять даты в следующем формате: #01/06/2004#. В базе первые два числа переставляются...

3
andyyy
577 / 182 / 105
Регистрация: 26.05.2016
Сообщений: 1,340
21.03.2018, 21:03 2
у меня как то так получилось))

PHP
1
2
3
4
5
6
7
$b =  preg_match_all("/[0-9]{4}|\/[0-9]{2}/",$string,$aa);
 
        echo $aa[0][0] = $aa[0][0] + 1;
            echo  "<br>";
        echo $aa[0][1] = $aa[0][1] + 1;
            echo  "<br>";
            echo $aa[0][3] = $aa[0][3]+1;
ну конечно это неправильно) но на данном примере сработает
0
WhiteBoss
0 / 0 / 2
Регистрация: 13.10.2016
Сообщений: 71
21.03.2018, 21:36  [ТС] 3
Цитата Сообщение от andyyy Посмотреть сообщение
у меня как то так получилось))
Суть в том, что бы даты были красными, при этом год увеличился на 1. А в данном случае вы просто вывели года увеличенные на 1
0
andyyy
577 / 182 / 105
Регистрация: 26.05.2016
Сообщений: 1,340
22.03.2018, 08:38 4
Цитата Сообщение от WhiteBoss Посмотреть сообщение
Суть в том, что бы даты были красными, при этом год увеличился на 1. А в данном случае вы просто вывели года увеличенные на 1
ну подставьте ваш спан и станут они красными))\\

PHP
1
<?PHP $b =  preg_match_all("/[0-9]{4}|\/[0-9]{2}/",$string,$aa); ?>
HTML5
1
<span style="color: red;">
PHP
1
2
3
4
5
6
7
8
9
<?PHP  
  
 echo $aa[0][0] = $aa[0][0] + 1;
            echo  "<br>";
        echo $aa[0][1] = $aa[0][1] + 1;
            echo  "<br>";
            echo $aa[0][3] = $aa[0][3]+1;
 
  ?>


HTML5
1
</span>
Добавлено через 13 минут
а все понял - вы текст хотите оставить при этом увеличить, да?

Добавлено через 11 минут
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
<?PHP 
 
 
$str='aaa2.12.2003aaa45.23.1123aaa12/31/12aaa';
    
 
 
    
 
  function increment($arr) 
  {
 
    return  "<span style='color: red; border: 1px solid green;'>".($arr[0]+1)."</span>";
  }
    
      echo preg_replace_callback(
              " /[0-9]{4}|\/[0-9]{2}[^\/]/",
              "increment",
              $str);
    
    
 
 
 
 
 
 
 
 
 
 
?>
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2018, 08:38

Работа с датами
Не могу реализовать такую тему. Сразу пример: допустим в Edit вписываю 61. В label должен...

Работа с датами
Помогите немного с парочкой вопросов. 1. найдите сотрудников принятых после сотрудника ННН....

Работа с датами
В Постгре можно отнимать от даты произвольные интервалы select current_date - interval '3...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru