Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Функция для работы с датой

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Okula
Отправлено: 11 Февраля, 2011 - 19:48:46
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Добрый вечер, прошу вашей помощи так как времени вообще нет.
Нужно написать функцию которая будет преобразовывать дату из такого формата:
08 Августа 2010г. [23:59]
в результат функции time() т.е. время в секундах.
Все названия месяца начинаются с большой буквы в родительном падеже.
Для разбора времени напишу регулярное выражение чтобы облегчить задачу.
PHP:
скопировать код в буфер обмена
  1. preg_match_all("~([0-9]+) ([а-я]+) ([0-9]+)г. \[([0-9]{1,2}):([0-9]{1,2})\]~iu", $data, $inf);
  2.  
  3. /* Результут переменной $inf
  4.  
  5. Array
  6. (
  7.     [0] => Array
  8.         (
  9.             [0] => 08 Августа 2010г. [23:59]
  10.         )
  11.  
  12.     [1] => Array
  13.         (
  14.             [0] => 08
  15.         )
  16.  
  17.     [2] => Array
  18.         (
  19.             [0] => Августа
  20.         )
  21.  
  22.     [3] => Array
  23.         (
  24.             [0] => 2010
  25.         )
  26.  
  27.     [4] => Array
  28.         (
  29.             [0] => 23
  30.         )
  31.  
  32.     [5] => Array
  33.         (
  34.             [0] => 59
  35.         )
  36.  
  37. )
  38.  

Заранее благодарен Подмигивание
(Добавление)
Уделил себе время, написал функцию. Может пригодится кому тоже:
PHP:
скопировать код в буфер обмена
  1.  
  2. // Дата в формате: 08 Августа 2010г. [23:59]
  3. // Секунды генерируются функцией mt_rand()
  4. function convert_data($data_text) {
  5.     preg_match_all("~([0-9]+) ([а-я]+) ([0-9]+)г. \[([0-9]{1,2}):([0-9]{1,2})\]~iu", $data_text, $info);
  6.     if($info[2][0] == "Января") $m = 1;
  7.     if($info[2][0] == "Февраля") $m = 2;
  8.     if($info[2][0] == "Марта") $m = 3;
  9.     if($info[2][0] == "Апреля") $m = 4;
  10.     if($info[2][0] == "Мая") $m = 5;
  11.     if($info[2][0] == "Июня") $m = 6;
  12.     if($info[2][0] == "Июля") $m = 7;
  13.     if($info[2][0] == "Августа") $m = 8;
  14.     if($info[2][0] == "Сентября") $m = 9;
  15.     if($info[2][0] == "Октября") $m = 10;
  16.     if($info[2][0] == "Ноября") $m = 11;
  17.     if($info[2][0] == "Декабря") $m = 12;
  18.     $d = (int)$info[1][0];
  19.     $date = mktime($info[4][0], $info[5][0], mt_rand(0, 59), $m, $d, $info[3][0]);
  20.     return $date;
  21. }
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB