|
|
|
| В таблице есть столбец, куда записывается дата рождения пользователя.
`bithday` date NOT NULL default '0000-00-00',
|
Сейчас делаю менюшку, где пользователь может редактировать данные о себе, ну и возник вопрос, как собственно разделить день, месяц и год на разные переменные?
Если не понятно пояснил, то покажу на примере(сам код этой менюшки выдумал не я а взял из книги):
<tr>
<td>Дата рождения :</td>
<td>
<?php
// Выпадающий список для дня
echo "<select class=input type=text name='date_day'>";
for($i = 1; $i <= 31; $i++)
{
if($date_day == $i) $temp = "selected";
else $temp = "";
echo "<option value=$i $temp>".sprintf("%02d", $i);
}
echo "</select>";
// Выпадающий список для месяца
?>
<select name =date_month>
<option value=1>Январь (01)</option>
<option value=2>Февраль (02)</option>
<option value=3>Март (03)</option>
<option value=4>Апрель (04)</option>
<option value=5>Май (05)</option>
<option value=6>Июнь (06)</option>
<option value=7>Июль (07)</option>
<option value=8>Август (08)</option>
<option value=9>Сентябрь (09)</option>
<option value=10>Октябрь (10)</option>
<option value=11>Ноябрь (11)</option>
<option value=12>Декабрь (12)</option>
<?php
// Выпадающий список для года
echo "<select class=input type=text name='date_year'>";
for($i = 1940; $i <= 2010; $i++)
{
if($date_year == $i) $temp = "selected";
else $temp = "";
echo "<option value=$i $temp>$i";
}
echo "</select><br>";
?>
</td>
</tr>
|
Вот форма выбора даты рождения, собственно еще 2 вопроса появилось:
1) Почему в IE форма года не показывается, а идет простой перебор чисел
2) А как собственно вставить эти переменные, если под значения value уже забиты другие переменные? | |
|
|
|
|
|
|
|
для: Dizels
(19.10.2007 в 20:42)
| | ИМХО проще всего в БД изменить тип поля на CHAR(10) и записывать в формате 31.12.2007
<?php
$date = $date_day.".".$date_month.".".$date_year;
?>
|
и в базу писать переменную $date/ | |
|
|
|
|
|
|
|
для: hell_riser
(19.10.2007 в 21:10)
| | Ну хорошо - в базе будет переменная $date а как потом то из базы вынимать это значение и раздельть его? | |
|
|
|
|
|
|
|
для: Dizels
(19.10.2007 в 21:28)
| |
<?php
$birth_date = explode(".", $date);
$birth_day = $birth_date[0];
$birth_month = $birth_date[1];
$birth_year = $birth_date[2];
?>
|
Просто ИМХО возиться с форматированием даты и времени просто не логично | |
|
|
|
|
|
|
|
для: hell_riser
(19.10.2007 в 22:01)
| | hell_riser, спасибо | |
|
|
|
|
|
|
|
для: Dizels
(19.10.2007 в 22:02)
| | Остался без ответа вопрос:
1) Почему в IE форма года не показывается, а идет простой перебор чисел | |
|
|
|
|
|
|
|
для: Dizels
(19.10.2007 в 22:25)
| | ? | |
|
|
|
|
|
|
|
для: Dizels
(20.10.2007 в 17:01)
| | можно не менять тип поля
`bithday` date NOT NULL default '0000-00-00'
<?
# непонятно какая вся таблица
// но можно выбирать примерно так
$sql = 'SELECT id, DAYOFMONTH( bithday ) AS day, MONTH( bithday ) AS mount, YEAR( bithday ) AS year
FROM tab WHERE id = ' . $id . ';';
|
и В <select class=input type=text name='date_year'> нехватает </option> | |
|
|
|
|
|
|
|
для: EXP
(20.10.2007 в 17:47)
| | изменил вот так:
echo "<select class=input type=text name='date_year'>";
for($i = 1940; $i <= 2010; $i++)
{
if($birth_year == $i) $temp = "selected";
else $temp = "";
echo "<option value=$i $temp>$i</option>";
}
echo "</select><br>";
|
Но проблема с отображением в IE осталась:( | |
|
|
|
|
автор: kemer (22.10.2007 в 12:19) |
|
|
для: Dizels
(19.10.2007 в 20:42)
| |
<?php
// Выпадающий список для дня
echo "<select class=input type=text name='date_day'>";
for($i = 1; $i <= 31; $i++)
{
if($date_day == $i) $temp = "selected";
else $temp = "";
echo "<option value=$i $temp>".sprintf("%02d", $i);
}
echo "</select>";
// Выпадающий список для месяца
?>
<select name =date_month>
<option value=1>Январь (01)</option>
<option value=2>Февраль (02)</option>
<option value=3>Март (03)</option>
<option value=4>Апрель (04)</option>
<option value=5>Май (05)</option>
<option value=6>Июнь (06)</option>
<option value=7>Июль (07)</option>
<option value=8>Август (08)</option>
<option value=9>Сентябрь (09)</option>
<option value=10>Октябрь (10)</option>
<option value=11>Ноябрь (11)</option>
<option value=12>Декабрь (12)</option>
у тебя не хватает : </select>
<?php
// Выпадающий список для года
echo "<select class=input type=text name='date_year'>"."\r\n";
for($i = 1940; $i <= 2010; $i++)
{
if($birth_year == $i) $temp = "selected";
else $temp = "";
echo "<option value=$i$temp>$i</option>"."\r\n";
}
echo "</select><br>";
?>
|
| |
|
|
|