Этот сайт не наркоманов. Это сайт программистов. Здесь курят мануал.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Мы в твиттере!
Мы вконтакте!
Мы на яндексе!

Краснодарское время: 22 Май, 2012, 06:45:52

Страниц: [1]
Печать
Автор Тема: парсер даты  (Прочитано 1713 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
PHPLion    ↓ 
16 Август, 2007, 11:46:48
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 25
Сила слова: 0

Друзья, посмотрите на код и скажите, что вы думаете...
Задача
Нужно отпарсить дату, выполнить какие-то операции с годом, месяцем, днем и вернуть дату с временем или без,
если вместо даты подставляется что-то кроме даты, например строка с текстом, то нужно вывести эту строку
 
CODE
<?php
$date = "2007-8-7 10:33";
//$date = "Never";
 
class jdn_persian {
function gregorian_to_jalali($y, $m, $d) {
$date = array($y-1, $m-1, $d-1);
return $date;
}
};
 
function parse_date($date) {
if (strtotime($date)) {
$dt = explode(" ", $date);
$d = explode("-", $dt[0]);
 
$obj = new jdn_persian;
$adt = array("date" => $obj->gregorian_to_jalali($d[0], $d[1], $d[2]), "time" => $dt[1]);
for ($i=1; $i<=2; $i++) {
if ($adt['date'][$i] <= 9) {
$adt['date'][$i] = "0".$adt['date'][$i];
}
}
return $adt;
 
} else {
return $date;
}
}
 
function show_date($date) {
if (is_array($date = parse_date($date))) {
return implode("-", $date['date'])." ".$date['time'];
} else {
return $date;
}
 
}
 
echo show_date($date);
?>
 

Спасибо, жду комментарии...
Записан
ghost    ↓ 
17 Август, 2007, 12:51:58 , спустя 1 час 5 минут 10 секунд
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31

PHP
class myDate{
const DATE_PATT = '/^\d{4}-\d{1,2}-\d{1,2}( \d{1,2}:\d{1,2})?$/';
 
const fmtDatA = 'm-d-Y';
const fmtDatE = 'd-m-Y';
//.........продолжаем наскока надо
 
function __construct($str){
    $this->text = trim($str);
    this->defDate();
}
 
public function showDate($format){
    if (!this->isDate){
        return htmlspesialchars($this->text);
    } else {
        return date($format, $this->date);
    }
}
 
private function defDate(){
    if (preg_match(self::DATE_PATT, $this->text)!=1) return;
    $this->isDate = true;
    $ar1 = explode(' ', $this->text);
    $arD = explode('-', $ar1[0]);
    if (count($ar1)==1) {
        $arT= array(0,0);
    } else {
         $arT = explode(':', $ar1[1]);
    }
    $this->date = mktime($arT[0], $arT[1], 0, $arD[1], $arD[0], $arD[2]);
}
 
private $date;
private $text = '';
private $isDate=false;
}
« Последнее редактирование: 17 Август, 2007, 01:31:05 от ghost » Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
ghost    ↓ 
17 Август, 2007, 03:27:32 , спустя 2 часа 35 минут 34 секунды
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31

ща vasa_c придет, ругаццо будет - скажет что все стат классом надо было делать - и нефиг плодить объекты :)
 
это кстати основа - выдается либо текст, либо дата - видоизменить и доработать до разбора строки с датой в нужном формате и с лбюыми действиями над датой, впрочем, не сложно
« Последнее редактирование: 17 Август, 2007, 06:58:28 от ghost » Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
PHPLion    ↓ 
17 Август, 2007, 08:50:48 , спустя 5 часов 23 минуты 16 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 25
Сила слова: 0

Спасибо огроМНОЕ.
Но с mktime тут не получится в одном случае.
Дата в бд хранитса в грегориане, а выводится в шамси(Иран), потом когда обратно ложитса в бд конвертитса из шамси в грегориан.
Тут прийдетса строку формить и присваивать закрытому свойству dаte.
П.С. 2007 в шамси это 1386<1970
Записан
md5    ↓ 
17 Август, 2007, 10:04:52 , спустя 1 час 14 минут 4 секунды
НЕ ХУЕТА! ХУЕТА!

выезд, апартаменты, массаж, стриптиз, подружки, дорого
Группа: в ухо

Карма: не нужна
Сообщений: 10493
Сила слова: 1.19

ща vasa_c придет, ругаццо будет
он отъехал, можно дебоширить =)
Записан

8: Undefined variable: str
Файл: /home/pyha/pyha.ru/forum/bbcode/Xbb/Tags/Man.php
Строка: 18
adw0rd: мудень блять, я уже фиксить стал эту фигню :)
md5: вуахахахаха
ghost    ↓ 
17 Август, 2007, 12:30:46 , спустя 2 часа 25 минут 54 секунды
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31

добавь свою ф-цию
privat myMktime(){
...
}
Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
ghost    ↓ 
17 Август, 2007, 12:42:16 , спустя 11 минут 30 секунд
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31

он отъехал, можно дебоширить =)
дык дня через 4 вернется то..
Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
Страниц: [1]
Печать
 

Перейти в: