我有一个birthdate字段,在将记录插入到clients表后是可选的。
插入后默认值为“000-00-00”。
现在,我想编辑表中的记录,并希望将birth_date字段的值放入三个下拉列表中。
三个下拉列表是日,月和年。
如果没有生日,则三个下拉列表的选定值应为“日”,“月”和“年”。</ p>
我尝试了以下代码,但不知道这是否是最佳方法。
$dateValue = '0000-00-00';
$year = explode("-", $dateValue);
if ($year[0] == "0000") {
$selected_year = "Year";
$selected_month = "Month";
$selected_day = "Day";
}else{
$selected_year = date("Y",strtotime($user['birth_date']));
}
如果有更好的方法,请告诉我。
不过,我正在使用codeigniter。答案 0 :(得分:2)
我认为你的测试太迟了,直接在$ dateValue上做起来要简单得多。此外,您可以通过使用list函数来简化代码: -
$dateValue = '0000-00-0';
if($dateValue == '0000-00-00'){
$values = array('Year', 'Month', 'Day');
} else {
$values = explode('-', $dateValue);
}
list($selected_year, $selected_month, $selected_day) = $values;
var_dump($selected_year);
var_dump($selected_month);
var_dump($selected_day);
提供以下输出: -
string 'Year' (length=4)
string 'Month' (length=5)
string 'Day' (length=3)
将第一行更改为: -
$dateValue = '2012-11-3';
得到: -
string '2012' (length=4)
string '11' (length=2)
string '3' (length=1)
就个人而言,我会将这一切隐藏在一个提高可读性的功能中: -
function getValues($dateValue = '0000-00-00'){
if($dateValue == '0000-00-00'){
$values = array('Year', 'Month', 'Day');
} else {
$values = explode('-', $dateValue);
}
return $values;
}
然后像这样使用它: -
list($selected_year, $selected_month, $selected_day) = getValues('2012-11-03');
var_dump($selected_year);
var_dump($selected_month);
var_dump($selected_day);
答案 1 :(得分:0)
我的建议是使用date_format mysql函数在你的查询中获取年,日,月这样的
select *,DATE_FORMAT(date_field,'%Y') as selected_year,
DATE_FORMAT(date_field,'%d') as selected_day,
DATE_FORMAT(date_field,'%c') as selected_month
from user_table;
了解更多信息date_format请查看此链接 Date_format
或mysql doc