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

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
Аватара пользователя
Barssoft
Сообщения: 726
Зарегистрирован: 2013.01.21, 16:03

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

Сообщение 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 скрипт не работает
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

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

Сообщение SiZE »

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

TIMESTAMPDIFF(SECOND, date_create, date_end) 
Аватара пользователя
Barssoft
Сообщения: 726
Зарегистрирован: 2013.01.21, 16:03

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

Сообщение Barssoft »

SiZE писал(а):

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

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

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

Сообщение Barssoft »

lancecoder писал(а):strtotime
так не работает я пробывал
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

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

Сообщение lancecoder »

вообще формат тайм включает год, месяц, день, полюбому не получится в таймштамп, тогда математика за 3 класс вам в помощь
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

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

Сообщение 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'] );
Регулярку проверки формата времени не забыл?
Аватара пользователя
Barssoft
Сообщения: 726
Зарегистрирован: 2013.01.21, 16:03

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

Сообщение 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).''); 
Сделал так незнаю паравильно ли это
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

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

Сообщение SiZE »

Barssoft писал(а):

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

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

P.S. Напиши что ты пытаешь проверить и что у тебя за время приходит?
Аватара пользователя
Barssoft
Сообщения: 726
Зарегистрирован: 2013.01.21, 16:03

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

Сообщение 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 часы, минуты, секунды
Аватара пользователя
Neuromance
Сообщения: 716
Зарегистрирован: 2011.09.06, 13:04

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

Сообщение 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);
Ответить