我将excel数据上传到mysql。在那里保存像16.5.59(dd.mm.yy)甲酸盐。我尝试使用此代码更改此内容
$date = '16.5.59';
echo date('d-m-y',strtotime($date));
它始终显示当前时间,如04-02-15。 请将其更改为dd-mm-yyyy甲酸盐。
先谢谢。
答案 0 :(得分:1)
尝试使用explode
和strtotime
date_default_timezone_set('America/Los_Angeles');
$date = '16.5.59';
$date_time = strtotime(implode('-', array_reverse(explode('.', $date))))
$date_str = date('d-m-Y', $date_time);
echo $date_str;
输出:16-5-2059
您需要 来指定年份为1959
而不是2059
(或者您确定它真的是2059年吗?)
您可以像这样从2059
更改为1959
:
date_default_timezone_set('America/Los_Angeles');
$date = '16.5.59';
$date_arr = array_reverse(explode('.', $date))
# This line does the job. Make sure all years are between 1900 - 1999.
$date_arr[0] = '19' . $date_arr[0];
$date_time = strtotime(implode('-', $date_arr))
$date_str = date('d-m-Y', $date_time);
echo $date_str;
我希望这个答案可以帮到你。
答案 1 :(得分:1)
这绝不是最好的解决方案,但使用php的date_parse_from_format
是可能的。您可以提供格式并使用以下
$date = "16.5.59";
$dateObj = date_parse_from_format("j.n.yy", $date)
使用$dateObj
可以满足您的需求,例如:
echo $dateObj['year'];
值得注意的是,您需要PHP >=v5.3
答案 2 :(得分:1)
$date = '16.5.59';
$date_array = explode(".",$date);
$var_day = $date_array[0];
$var_month = $date_array[1];
> Blockquote
$var_year = $date_array[2];
echo $new_date_format = "$var_day-$var_month-$var_year";