Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: и снова даты - помогите с конвертацией дат

Сообщения:  [1-10]   [11-19] 

 
 автор: Огонь   (24.11.2006 в 11:30)   письмо автору
 
   для: st.Ass   (13.11.2006 в 21:01)
 

если у мну не получается с 3его раза - перечитываю мануал :)

глянь тут:
http://ua2.php.net/manual/ru/function.strtotime.php,
http://www.gnu.org/software/tar/manual/html_node/tar_109.html

   
 
 автор: st.Ass   (13.11.2006 в 21:24)   письмо автору
 
   для: st.Ass   (13.11.2006 в 21:01)
 

Решил проблему


<?
$time 
"17-10-2004";
$day  substr($time,0,2);
$monthsubstr($time,3,2);
$year substr($time,6,4);
$time$year.'-'.$month.'-'.$day;
echo 
$time;  // 2004-10-17
?>

   
 
 автор: st.Ass   (13.11.2006 в 21:01)   письмо автору
 
   для: kasmanaft   (12.11.2006 в 13:37)
 

Хех:) А вот и нет!!! Проблема в strtotime()

Такой код работает правильно

<?
$time
="2004-07-11 11:16:34";     
$time=strtotime($time); 
echo 
strftime("%d.%m.%Y %H:%M",$time);
?>


А такой нет

<?
$time
="11-07-2004 11:16:34";     
$time=strtotime($time); 
echo 
strftime("%Y.%m.%d %H:%M",$time);
?>


А у меня данные из формы передаются как раз как во втором примере...
Т.о. необходимо $time="11-07-2004 11:16:34" представить как $time="2004-07-11 11:16:34" .
Как это можно сделать?

   
 
 автор: kasmanaft   (12.11.2006 в 13:37)   письмо автору
 
   для: st.Ass   (12.11.2006 в 10:47)
 

Это у тебя php какой-то странный ... все работает как надо

   
 
 автор: st.Ass   (12.11.2006 в 10:47)   письмо автору
 
   для: Trianon   (12.11.2006 в 00:43)
 

Вот, что странно:

<?
$date_1
="01-11-2006"

$date_1=strtotime($date_1);                          //  1177790400
echo $date_1;
$date_2=date("Y-m-d H:i:s",$date_1);          //  2007-04-29 00:00:00
echo $date_2;
?>

Как получается 2007-04-29?

   
 
 автор: Trianon   (12.11.2006 в 00:43)   письмо автору
 
   для: st.Ass   (12.11.2006 в 00:03)
 


<? 
$date_1 
$HTTP_POST_VARS['date_1'];          // получаем данные из формы 
echo $date_1;           // Здесь верная дата - 10-10-2006    
$date_1 strtotime($date_1);    
echo 
$date_1;           // Здесь $date_1  в unixstamp - 1459108800  

$query="SELECT * FROM main WHERE UNIX_TIMESTAMP(time_create) > $date_1"
             
// здесь сравниваем в unixstamp time_create и $date_1 также в unixstamp 
 
$resultmysql_query($query
$a=mysql_num_rows($result); 
echo 
$a;                 // а здесь все равно получаем неправильное значение, причем всегда равному одному и тому же числу... 
?> 

   
 
 автор: st.Ass   (12.11.2006 в 00:03)   письмо автору
 
   для: st.Ass   (05.11.2006 в 15:59)
 


<?
$date_1 
$HTTP_POST_VARS['date_1'];          // получаем данные из формы
echo $date_1;           // Здесь верная дата - 10-10-2006   
$date_1 strtotime($date_1);   
echo 
$date_1;           // Здесь $date_1  в unixstamp - 1459108800 

$query="SELECT * FROM main WHERE UNIX_TIMESTAMP(time_create) > FROM_UNIXTIME($date_1,'%Y-%m-%d %H:%i:%s')";              // здесь сравниваем в unixstamp time_create и $date_1 также в unixstamp 
$resultmysql_query($query)
$a=mysql_num_rows($result);
echo 
$a;                 // а здесь все равно получаем неправильное значение, причем всегда равному одному и тому же числу...
?>

Помогите разобраться - очень надо... Что я неправильно делаю?:(

   
 
 автор: st.Ass   (05.11.2006 в 15:59)   письмо автору
 
   для: st.Ass   (05.11.2006 в 12:48)
 


<?  
$date_1 
$HTTP_POST_VARS['date_1'];  
echo 
$date_1;                                                          // Здесь верная дата - 10-10-2006  
$date_1 strtotime($date_1);  
echo 
$date_1;                                                          // Здесь 1459108800
$date_1 date("'Y-m-d H:i:s'"strtotime($date_1));  
echo 
$date_1;                                                          // здесь получаем '2016-03-28 00:00:00' 

$query="SELECT * FROM main ";  
if(isset(
$date_1))           $query.=" WHERE time_create  >".$date_1;  // а здесь соответственно получаем неправильное сравнение  
$result mysql_query($query);  
if (!
$result) echo die(mysql_error());  
$a=mysql_num_rows($result);  
?> 

1459108800 :(
Объясните, пожалуйста, почему не работает данный код.

   
 
 автор: st.Ass   (05.11.2006 в 12:48)   письмо автору
 
   для: kasmanaft   (05.11.2006 в 12:28)
 

Теперь год 2016...

<? 
$date_1 
$HTTP_POST_VARS['date_1']; 
echo 
$date_1;                                                          // Здесь верная дата - 10-10-2006 
$date_1 date("'Y-m-d H:i:s'"strtotime($date_1)); 
echo 
$date_1;                                                          // здесь получаем '2016-03-28 00:00:00'

$query="SELECT * FROM main "
if(isset(
$date_1))           $query.=" WHERE time_create  >".$date_1;  // а здесь соответственно получаем неправильное сравнение 
$result mysql_query($query); 
if (!
$result) echo die(mysql_error()); 
$a=mysql_num_rows($result); 
?>

   
 
 автор: kasmanaft   (05.11.2006 в 12:28)   письмо автору
 
   для: st.Ass   (05.11.2006 в 11:54)
 


int strtotime ( string time [, int now] )

Первым параметром функции должна быть строка с датой на английском языке, которая будет
 преобразована в метку времени относительно метки времени, переданной в now, или 
текущего времени, если аргумент now опущен. В случае ошибки возвращается -1.


не $date_1 = strtotime("'Y-m-d H:i:s'", $date_1);
а $date_1 = date("'Y-m-d H:i:s'", strtotime($date_1));

   

Сообщения:  [1-10]   [11-19] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования