Вот есть у меня в базе данных записи, у каждой записи есть время создания, которое определялось функцией time(). Из нее можно получить дату как-то так date('d-m-Y', time()), а вот как сделать обратно? Чтобы time(date('d-m-Y'))?
mktime() Добавлено спустя 1 минуту 55 секунд: Или strtotime() Добавлено спустя 3 минуты 14 секунд: Или средствами б.д.: http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html функции UNIX_TIMESTAMP() и FROM_UNIXTIME()
WHERE FROM_UNIXTIME(`fieldname`) = '2012-06-22' WHERE `fieldname` >= 1340308800 AND `fieldname` < 1340395199 Добавлено спустя 3 минуты 54 секунды: WHERE DATE(FROM_UNIXTIME(`fieldname`)) = '2012-06-22'
У меня это получилось намного более чудовищно Код (PHP): $test=explode('-', $visitors[0]['user_date']); foreach($test as $key=>$value){ $test[$key]=(int)$value; } $lastweek=mktime(0,0,0,$test[1],$test[0],$test[2]); if($lastweek+604800>time()){ $lastweek=time()-604800; } $visitors=$counter->selectRegCounter($lastweek, $user); а потом вот так: Код (PHP): function selectRegCounter($lastweek, $p){ $today=time(); $sql="SELECT user_date FROM alex_p1p2 WHERE user_p='{$p}' AND user_date BETWEEN '{$lastweek}' and '{$today}'"; $test=$this->sql($sql); $i=0; while($row=mysql_fetch_assoc($test)){ $count[$i]=$row['user_date']; $i++; } $i=0; $array[$i]['user_date']=date('d-m-Y', $lastweek); $array[$i]['user_counter']=0; if(is_array($count)){ foreach($count as $value){ $temp_dat=date('d-m-Y', $value); if($temp_dat==$array[$i]['user_date']){ $array[$i]['user_counter']++; }else{ $i++; $array[$i]['user_date']=$temp_dat; $array[$i]['user_counter']=1; } } } return $array; }