Страница 1 из 1

Строку конвертировать во время

Добавлено: 2013.07.16, 13:26
Barssoft
Как сделать так чтоб 12:12:12 , то есть 12 часов 12 минут 12 секунд превратить в формат time(), сейчас делаю вот так

Код: Выделить всё

$date = explode(':',$model->time_out);
            $date=$date['0']*3600+$date['1']*60+$date['2'];            
            $creteria->addCondition('date_end-date_create<='.($date+6*3600).''); 
Но что то такое ощущение что ни правильно, да и если скажем время приходит такое как 01:05:02 скрипт не работает

Re: Строку конвертировать во время

Добавлено: 2013.07.16, 14:35
SiZE

Код: Выделить всё

TIMESTAMPDIFF(SECOND, date_create, date_end) 

Re: Строку конвертировать во время

Добавлено: 2013.07.17, 05:22
Barssoft
SiZE писал(а):

Код: Выделить всё

TIMESTAMPDIFF(SECOND, date_create, date_end)
В базе у меня время храниться как надо, в формате time(), а вот с формы приходит читабельное такое как 23:12:01, и его надо конвертировать в time() для того чтоб сделать праверку

Re: Строку конвертировать во время

Добавлено: 2013.07.17, 05:48
lancecoder
strtotime

Re: Строку конвертировать во время

Добавлено: 2013.07.17, 06:08
Barssoft
lancecoder писал(а):strtotime
так не работает я пробывал

Re: Строку конвертировать во время

Добавлено: 2013.07.17, 06:34
lancecoder
вообще формат тайм включает год, месяц, день, полюбому не получится в таймштамп, тогда математика за 3 класс вам в помощь

Re: Строку конвертировать во время

Добавлено: 2013.07.17, 07:33
SiZE
Barssoft писал(а):В базе у меня время храниться как надо time()
ну тогда
Returns the Unix timestamp corresponding to the arguments given. This timestamp is a long integer containing the number of seconds between the Unix Epoch (January 1 1970 00:00:00 GMT) and the time specified.

int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )

Код: Выделить всё

$date = mktime( $date['0'], $date['1'], $date['2'] );
Регулярку проверки формата времени не забыл?

Re: Строку конвертировать во время

Добавлено: 2013.07.17, 08:53
Barssoft
SiZE писал(а):
Barssoft писал(а):В базе у меня время храниться как надо time()
ну тогда
Returns the Unix timestamp corresponding to the arguments given. This timestamp is a long integer containing the number of seconds between the Unix Epoch (January 1 1970 00:00:00 GMT) and the time specified.

int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )

Код: Выделить всё

$date = mktime( $date['0'], $date['1'], $date['2'] );
Регулярку проверки формата времени не забыл?

Код: Выделить всё

 if($model->time_out!=null and $model->status==2){
            $date = explode(':',$model->time_out);
            $date=mktime($date['0'],$date['1'],$date['2']);
            $tecdate = date('d-m-Y');
            $tecdate=strtotime($tecdate);
            $date =$date-$tecdate;
            //$date=strtotime($model->time_out);          
            $creteria->addCondition('date_end-date_create<='.($date).''); 
Сделал так незнаю паравильно ли это

Re: Строку конвертировать во время

Добавлено: 2013.07.17, 12:28
SiZE
Barssoft писал(а):

Код: Выделить всё

$tecdate = date('d-m-Y');
$tecdate=strtotime($tecdate);
$date =$date-$tecdate;
$creteria->addCondition('date_end-date_create<='.($date).'');
Сделал так незнаю паравильно ли это
Ты отжог конкретно :lol:

P.S. Напиши что ты пытаешь проверить и что у тебя за время приходит?

Re: Строку конвертировать во время

Добавлено: 2013.07.17, 12:33
Barssoft
SiZE писал(а):
Barssoft писал(а):

Код: Выделить всё

$tecdate = date('d-m-Y');
$tecdate=strtotime($tecdate);
$date =$date-$tecdate;
$creteria->addCondition('date_end-date_create<='.($date).'');
 
Сделал так незнаю паравильно ли это
Ты отжог конкретно :lol:

P.S. Напиши что ты пытаешь проверить и что у тебя за время приходит?
Мне нужно сделать выборку всех записей где время окончания минус время начала меньше или равно заданому с формы в формате 01:02:03 часы, минуты, секунды

Re: Строку конвертировать во время

Добавлено: 2013.07.17, 12:50
Neuromance
Как-то так наверное

Код: Выделить всё

$d = explode(':',$model->time_out);
$time = 3600*$d[0] + 60*$d[1] + $d2; // заданное время в секундах

$criteria->condition('TIMESTAMPDIFF(SECOND, date_create, date_end)  <= :time');
$criteria->params=array(':time'=>$time);