|
|
|
| есть две переменные varchar 1-я 20070623 и 2-я 20060723
надо получить переменную равную количеству месяцев между первой переменной и второй
в данном случае 11, спасибо | |
|
|
|
|
|
|
|
для: Владимир777
(23.05.2006 в 11:23)
| | А между 20060531 и 20060601 сколько месяцев? | |
|
|
|
|
|
|
|
для: Владимир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]; | |
|
|
|
|
|
|
|
для: 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 в 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
неправильно | |
|
|
|
|
|
|
|
для: Владимир777
(23.05.2006 в 11:23)
| | А переменные не из MySQL извлекаются? Просто там эту здачу решить гораздо проще... | |
|
|
|
|
|
|
|
для: cheops
(23.05.2006 в 13:06)
| | из mysql , они там храняться в виде 20060523 как varchar | |
|
|
|
|
|
|
|
для: Владимир777
(23.05.2006 в 13:14)
| | А нет возможно преобразовать поле varchar в date? Тогда все вычисления можно будет осуществлять развитыми средствами MySQL? | |
|
|
|
|
|
|
|
для: 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 | |
|
|
|
|
|
|
|
для: Владимир777
(23.05.2006 в 13:26)
| | >если я преобразую, данные сохраняться?
Да, если используется формат 20060523 данные должны сохраниться корректно - в любом случае можно сделать предварительно резервную копию или испробовать код на локальной машине. | |
|
|
|
|
|
|
|
для: cheops
(23.05.2006 в 13:16)
| | DATE_FORMAT??? | |
|
|
|
|
|
|
|
для: Boss
(23.05.2006 в 13:40)
| | varchar | |
|
|
|
|
|
|
|
для: Владимир777
(23.05.2006 в 13:55)
| | то есть надо преобразовать в правильный формат 2006-05-23 и потом заменить тип поля? | |
|
|
|