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

Форум PHP

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

 

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

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

тема: как преобразовать строку в дату
 
 автор: Владимир777   (23.05.2006 в 11:23)   письмо автору
 
 

есть две переменные varchar 1-я 20070623 и 2-я 20060723
надо получить переменную равную количеству месяцев между первой переменной и второй
в данном случае 11, спасибо

   
 
 автор: Trianon   (23.05.2006 в 11:27)   письмо автору
 
   для: Владимир777   (23.05.2006 в 11:23)
 

А между 20060531 и 20060601 сколько месяцев?

   
 
 автор: TrunK   (23.05.2006 в 11:33)   письмо автору
 
   для: Владимир777   (23.05.2006 в 11:23)
 

У меня никак не получилось 11 месяцев... Меньше 3 часов в вашем случае.

$var1 = 20070623;
$var2 = 20060723;
$time1 = getdate($var1);
$time2 = getdate($var2);
$mon1 = $time1['year'];
$mon2 = $time2['mon'];
echo "$time1[hours]:$time1[minutes] $time1[mday].$time1[mon].$time1[year] <br>";
echo "$time2[hours]:$time2[minutes] $time2[mday].$time2[mon].$time2[year] <br>";

Разницу месяцев можно посчитать $time1[mon] - $time2[mon];

   
 
 автор: Владимир777   (23.05.2006 в 11:52)   письмо автору
 
   для: TrunK   (23.05.2006 в 11:33)
 


$mes1 =$row['dat_e'];
 $mes2 =$row['dat_n'];
 echo $mes1;
 echo '<br>';
 echo $mes2;
  echo '<br>';
 $mes1 =getdate($mes1);
 $mes2 =getdate($mes2);
 echo $mes1;
   echo '<br>';
 echo $mes2;
 $mes = $mes1[mon]-$mes2[mon]; 


выходит

20061116
20060516
Array
Array

   
 
 автор: Владимир777   (23.05.2006 в 12:10)   письмо автору
 
   для: Владимир777   (23.05.2006 в 11:52)
 


$var1 =$row['dat_e'];
 $var2 =$row['dat_n'];
 
echo "$var1";
echo "<br>";
echo "$var2";
echo "<br>";
$time1 = getdate($var1); 
$time2 = getdate($var2); 

echo "$time1[hours]:$time1[minutes] $time1[mday].$time1[mon].$time1[year] <br>"; 
echo "$time2[hours]:$time2[minutes] $time2[mday].$time2[mon].$time2[year] <br>";



выходит
20070204
20060131
13:3 21.8.1970
10:15 21.8.1970

неправильно

   
 
 автор: cheops   (23.05.2006 в 13:06)   письмо автору
 
   для: Владимир777   (23.05.2006 в 11:23)
 

А переменные не из MySQL извлекаются? Просто там эту здачу решить гораздо проще...

   
 
 автор: Владимир777   (23.05.2006 в 13:14)   письмо автору
 
   для: cheops   (23.05.2006 в 13:06)
 

из mysql , они там храняться в виде 20060523 как varchar

   
 
 автор: cheops   (23.05.2006 в 13:16)   письмо автору
 
   для: Владимир777   (23.05.2006 в 13:14)
 

А нет возможно преобразовать поле varchar в date? Тогда все вычисления можно будет осуществлять развитыми средствами MySQL?

   
 
 автор: Владимир777   (23.05.2006 в 13:26)   письмо автору
 
   для: cheops   (23.05.2006 в 13:16)
 

если я преобразую, данные сохраняться?
просто сейчас пользователи вводят дату в формате
23.05.2006 так им удобнее,

и потом дата в формате 20060523 записывается в базу

if (strlen(trim($dat_n))==10)
{$dat3=substr($dat_n,0,2); 
$dat2=substr($dat_n,3,2);
$dat1=substr($dat_n,6,4);
$dat_n=$dat1*10000+$dat2*100+$dat3;}

 $request = "UPDATE delf_company
                  SET   dat_n     = '$dat_n',
                    WHERE id = ".$id_company;
   $result  = mysql_query($request);



а из базы достается для редактирования опять как 23.05.2006

   
 
 автор: cheops   (23.05.2006 в 22:50)   письмо автору
 
   для: Владимир777   (23.05.2006 в 13:26)
 

>если я преобразую, данные сохраняться?
Да, если используется формат 20060523 данные должны сохраниться корректно - в любом случае можно сделать предварительно резервную копию или испробовать код на локальной машине.

   
 
 автор: Boss   (23.05.2006 в 13:40)   письмо автору
 
   для: cheops   (23.05.2006 в 13:16)
 

DATE_FORMAT???

   
 
 автор: Владимир777   (23.05.2006 в 13:55)   письмо автору
 
   для: Boss   (23.05.2006 в 13:40)
 

varchar

   
 
 автор: Владимир777   (23.05.2006 в 14:30)   письмо автору
 
   для: Владимир777   (23.05.2006 в 13:55)
 

то есть надо преобразовать в правильный формат 2006-05-23 и потом заменить тип поля?

   
Rambler's Top100
вверх

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