powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / операция с датой
9 сообщений из 9, страница 1 из 1
операция с датой
    #37728393
Народ, может кто-то в курсе.
Есть ТЕКСТ вида: "20 июл 2004 18:55" ($str = "20 июл 2004 18:55";)

Надо получить вид "20-06-2004 18:55:00" и сделать Датой.

В принципе пытаюсь сделать мудреным способом:

Код: php
1.
2.
3.
4.
5.
6.
$str = "20 июл 2004 18:55";
$a = array (" ",":");
$date = str_replace($a,'/',$str);
list($d, $m, $y, $h, $min, $s) = explode('/', $date);
$mk=mktime($h, $min, 0, $m, $d, $y);
$d=strftime('%F %T',$mk);



Тут осталось только каким то образом заменять месяц на числовой, и по идее будит пахать. Но что-то мне подсказывает что это не панацея :)
...
Рейтинг: 0 / 0
операция с датой
    #37728514
неТолик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может как то так
Код: php
1.
date("d.m.y H:i",strtotime($str)); 
...
Рейтинг: 0 / 0
операция с датой
    #37728752
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
А откуда вы даты в таком виде берете?
...
Рейтинг: 0 / 0
операция с датой
    #37729276
?А откуда вы даты в таком виде берете?

Из файла :)
Есть файлик, который содержит массив данных, сжатый Zlib. Откуда и можно ли заново получить файлик... хз, нет :)
...
Рейтинг: 0 / 0
операция с датой
    #37729289
неТоликможет как то так
Код: php
1.
date("d.m.y H:i",strtotime($str)); 




Код: php
1.
2.
$date = "20 июл 2004 18:55";
echo date("d.m.y H:i",strtotime($date)); 


Выводит: 01.01.70 04:00

Думаю, мой вариант самый оптимальный...
...
Рейтинг: 0 / 0
операция с датой
    #37729297
В итоге у меня получилось вот что:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
function conver_date($date) {
$date= trim($date);
$a = array (" ",":","//");
$mes = array("янв"=>'1',"фев"=>'2',"мар"=>'3',"апр"=>'4',"май"=>'5',"июн"=>'6',"июл"=>'7',"авг"=>'8',"сен"=>'9',"окт"=>'10',"ноя"=>'11',"дек"=>'12');
if(empty($date))
{$dt = "1/апр/2014/10/30";}
else {$dt = str_replace($a,'/',$date);}
list($d, $m, $y, $h, $min, $s) = explode('/', $dt);
$mk = mktime($h, $min, 0, $mes[$m], $d, $y);
$d = strftime('%F %T',$mk);
unset($a); unset($mes);
return $d;
}



В принципе работает, и вполне сойдет, как кастыль, для разового переноса данных из файла в базу.
...
Рейтинг: 0 / 0
операция с датой
    #37729313
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Код: php
1.
2.
3.
4.
str_replace(
  array(' янв ', ' фев ', ... ' дек '),
  array('-01-', '-02-', ... '-12-'),
  $str) . ':00';
...
Рейтинг: 0 / 0
операция с датой
    #37729315
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто ЛехаДумаю, мой вариант самый оптимальный...
ой ли?

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
$mes = array(
" янв "=>'.1.',
" фев "=>'.2.',
" мар "=>'.3.',
" апр "=>'.4.',
" май "=>'.5.',
" июн "=>'.6.',
" июл "=>'.7.',
" авг "=>'.8.',
" сен "=>'.9.',
" окт "=>'.10.',
" ноя "=>'.11.',
" дек "=>'.12.');
$date = "20 июл 2004 18:55";
echo date("d.m.y H:i",strtotime(strtr($date, $mes))); 


ps. Исходный массив проще даже сгенерить... просто лень было, пришлось печатать)
...
Рейтинг: 0 / 0
операция с датой
    #37729347
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Леха,

Код: php
1.
2.
3.
4.
5.
function conver_date($str) {
	$months = array_flip(array(1=>'янв','фев','мар','апр','май','июн','июл','авг','сен','окт','ноя','дек'));
	list($d, $m, $y, $time) = explode(' ', trim($str));
	return sprintf("%04d-%02d-%02d", $y,$months[$m],$d).' '.$time.':00';	
}
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / операция с датой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]