在PHP中转换过去的日期格式

时间:2015-02-04 12:52:14

标签: php

我将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甲酸盐。

先谢谢。

3 个答案:

答案 0 :(得分:1)

尝试使用explodestrtotime

自行制作日期
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'];

IDE Running Example

值得注意的是,您需要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";