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

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

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

Сообщение Barssoft » 2013.07.16, 13:26

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

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

Сообщение SiZE » 2013.07.16, 14:35

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

TIMESTAMPDIFF(SECOND, date_create, date_end) 
в поиске работы

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

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

Сообщение Barssoft » 2013.07.17, 05:22

SiZE писал(а):

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

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


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

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

Сообщение Barssoft » 2013.07.17, 06:08

lancecoder писал(а):strtotime
так не работает я пробывал

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

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

Сообщение lancecoder » 2013.07.17, 06:34

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

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

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

Сообщение SiZE » 2013.07.17, 07:33

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 » 2013.07.17, 08:53

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

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

Сообщение SiZE » 2013.07.17, 12:28

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 » 2013.07.17, 12:33

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
Сообщения: 715
Зарегистрирован: 2011.09.06, 13:04

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

Сообщение Neuromance » 2013.07.17, 12:50

Как-то так наверное

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

$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);

Ответить