Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: преображение даты (не текущей)
 
 автор: jbs   (27.01.2008 в 17:03)   письмо автору
 
 

Нужно преобразовать дату, корорая может иметь формат dd-mm-yy и dd-mm-yyyy в формат yyyy-mm-dd.
а и ещё вместо тере могут быть точки

кстати, если есть какая-нить литература типа "регул. выражения для особо одарённых", подкиньте плз.

Заранее спасибо!

   
 
 автор: Trianon   (27.01.2008 в 17:07)   письмо автору
 
   для: jbs   (27.01.2008 в 17:03)
 

Преображение бывает с человеком.
А с данными бывает преобразование.
Литература по регулярным выражениям есть только одна.
И для особо одаренных, и для изрядно продвинутых.
Это Дж.Фридл. http://softtime.ru/article/index.php?id_article=62

тере, блин...

   
 
 автор: jbs   (27.01.2008 в 17:35)   письмо автору
 
   для: Trianon   (27.01.2008 в 17:07)
 

я что попал в раздел граматики?
мне всего лиш осталось конвертнуть дату и я смогу в конце концов поспать!

а за ссылочку спасибо, но 400 стр. я сейчас непотяну :)

   
 
 автор: afdm   (27.01.2008 в 18:40)   письмо автору
 
   для: jbs   (27.01.2008 в 17:35)
 


<?
$date 
"27.01.2008";
if (
preg_match("|([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})|i"$date$a)) {
        echo 
"$a[3].$a[2].$a[1]";
?>

вот как-то так...
PS для начала достаточно просто прочитать любую книгу софттайма, главу по рег. выражениям...

   
 
 автор: jbs   (27.01.2008 в 19:06)   письмо автору
 
   для: afdm   (27.01.2008 в 18:40)
 

>вот как-то так...

спасибо за попытку, жаль только неработает :( массив пустой, только точки выдаёт

   
 
 автор: Faraon   (27.01.2008 в 19:31)   письмо автору
 
   для: jbs   (27.01.2008 в 19:06)
 

<?php
$date 
"27-01-2008";
$res=preg_replace("#(\d{1,2})[-|\.](\d{1,2})[-|\.](\d{1,4})#","$3-$2-$1"$date);
echo 
$res;
?>

   
 
 автор: kasmanaft   (27.01.2008 в 19:42)   письмо автору
 
   для: Faraon   (27.01.2008 в 19:31)
 

Только не "[-|\.]", а "[-.]"

   
 
 автор: Faraon   (27.01.2008 в 20:31)   письмо автору
 
   для: kasmanaft   (27.01.2008 в 19:42)
 

Можно и так, я просто привык, по крайней мере точку экранировать.

   
 
 автор: jbs   (27.01.2008 в 19:44)   письмо автору
 
   для: Faraon   (27.01.2008 в 19:31)
 

вот спасибо, работает!, а год в четыре знака я сам конвертну, благо все даты в этом веке :)
а то я уже начал вручную перемалывать, а там их сотни.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования