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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: mktime в кодировке utf-8 НЕ РАБОТАЕТ!
 
 автор: yustys   (17.11.2009 в 19:30)   письмо автору
 
 

Выдает Warning: mktime() expects parameter 1 to be long, string given in Z:\home\LEPSH\www\all_things.php on line 79
Что делать?

  Ответить  
 
 автор: Николай2357   (17.11.2009 в 19:48)   письмо автору
 
   для: yustys   (17.11.2009 в 19:30)
 

И кто виноват? ))
А что там в параметрах то?

  Ответить  
 
 автор: Yustys   (17.11.2009 в 19:52)   письмо автору
 
   для: Николай2357   (17.11.2009 в 19:48)
 

В параметрах ничего не менял... проблема появилась после перевода сайта на ЮТФ кодировку. Раньше на Win все работало... Мот под Ютф другая функция имеется?

  Ответить  
 
 автор: asptema   (17.11.2009 в 20:18)   письмо автору
 
   для: Yustys   (17.11.2009 в 19:52)
 

кусок кода в студию!

  Ответить  
 
 автор: Yustys   (17.11.2009 в 21:07)   письмо автору
 
   для: asptema   (17.11.2009 в 20:18)
 

$MySqlDB2->SelectData("SELECT id_thing FROM lepsh_comments_things WHERE id_thing=$id_thing");
$date_add=$MySqlDB->FieldByName("date_add"); 
$date_time = explode(" ", $date_add);
$data=explode("-", $date_time[0]);
$time=explode(":", $date_time[1]);
$time_add = mktime($time[0],$time[1],$time[2],$data[1],$data[2],$data[0]);

  Ответить  
 
 автор: asptema   (17.11.2009 в 22:29)   письмо автору
 
   для: Yustys   (17.11.2009 в 21:07)
 

а почему бы не работать с временем/датой в формате Unix-Timestamp???
и кода меньше будет

  Ответить  
 
 автор: Yustys   (26.11.2009 в 18:47)   письмо автору
 
   для: asptema   (17.11.2009 в 22:29)
 

Вот здесь полностью согласен... но данный кусок изначально писался не мной и переделать сейчас - крайне затруднительно.

  Ответить  
 
 автор: Trianon   (17.11.2009 в 22:51)   письмо автору
 
   для: Yustys   (17.11.2009 в 21:07)
 

а что у Вас лежит в $date_add ?

похоже на скрытую зависимость от локали.

  Ответить  
 
 автор: GeorgeIV   (17.11.2009 в 23:01)   письмо автору
 
   для: Yustys   (17.11.2009 в 21:07)
 

$MySqlDB2->SelectData("SELECT id_thing FROM lepsh_comments_things WHERE id_thing=$id_thing"); 
$date_add=$MySqlDB->FieldByName("date_add");  

Выделенное жирным должны быть разными?

И сделайте приведение к int всех параметров
$time_add = mktime((int)$time[0], (int)$time[1], (int)$time[2], (int)$data[1], (int)$data[2], (int)$data[0]); 

  Ответить  
 
 автор: Trianon   (17.11.2009 в 23:09)   письмо автору
 
   для: GeorgeIV   (17.11.2009 в 23:01)
 

не нужно там приведение к int
Только путаницу внесет...

  Ответить  
 
 автор: GeorgeIV   (17.11.2009 в 23:14)   письмо автору
 
   для: Trianon   (17.11.2009 в 23:09)
 

Выдает Warning: mktime() expects parameter 1 to be long, string given in Z:\home\LEPSH\www\all_things.php on line 79
Что делать?

Лучше бы посмотреть, что в параметрах приходит, но судя по сообщению строка

  Ответить  
 
 автор: Trianon   (17.11.2009 в 23:27)   письмо автору
 
   для: GeorgeIV   (17.11.2009 в 23:14)
 

судя по всему, скрипт работал ранее с "2009-11-17 23:25:35" и никакие строки ему не мешали.
А теперь ему суют к примеру "23:25:35, November 17, 2009" - вот он и...
просто приведение параметра, значение которого неизвестно, лишь закамуфлирует ошибку.

  Ответить  
 
 автор: GeorgeIV   (17.11.2009 в 23:32)   письмо автору
 
   для: Trianon   (17.11.2009 в 23:27)
 

Согласен

  Ответить  
Rambler's Top100
вверх

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