在php中转换过去日期格式

在php中转换过去日期格式,php,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格式 提前感谢。在某些系统(如Windows)上,时间戳限制为1970年1月1日至2038年1月19日 如果时间戳未覆盖给定范围,则它将采用当前日期。在某些系统(例如Windows)上

我正在将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格式


提前感谢。

在某些系统(如Windows)上,时间戳限制为1970年1月1日至2038年1月19日


如果时间戳未覆盖给定范围,则它将采用当前日期。

在某些系统(例如Windows)上,时间戳限制在1970年1月1日至2038年1月19日之间


如果它没有覆盖给定的范围,那么它将使用当前日期。

尝试使用
分解
strotime
来自己创建日期:

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;

我希望这个答案能对你有所帮助。

试着自己用
explode
strotime
来确定日期:

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;

我希望这个答案能对你有所帮助。

这绝不是最好的解决方案,但是使用php的
date\u parse\u from\u format
是可能的。您可以提供一种格式并使用以下内容

$date = "16.5.59";
$dateObj = date_parse_from_format("j.n.yy", $date)
使用
$dateObj
您可以完成您需要的工作,例如:

 echo $dateObj['year'];


值得注意的是,您需要
PHP>=v5.3

这绝不是最好的解决方案,但使用PHP的
日期解析格式是可能的。您可以提供一种格式并使用以下内容

$date = "16.5.59";
$dateObj = date_parse_from_format("j.n.yy", $date)
使用
$dateObj
您可以完成您需要的工作,例如:

 echo $dateObj['year'];


值得注意的是,您需要
PHP>=v5.3

如果是为了更简单的任务,您可以这样做。这将消耗时间

$date = '16.5.59'; 
$dtSplit=explode(".",$date);
echo "<br>".$dtSplit[0].".".$dtSplit[1].".".$dtSplit[2];
echo "<br>".$dtSplit[0].".".$dtSplit[2].".".$dtSplit[1];
echo "<br>".$dtSplit[1].".".$dtSplit[0].".".$dtSplit[2];
echo "<br>".$dtSplit[1].".".$dtSplit[2].".".$dtSplit[0];
echo "<br>".$dtSplit[2].".".$dtSplit[0].".".$dtSplit[1];
echo "<br>".$dtSplit[2].".".$dtSplit[1].".".$dtSplit[0];
$date='16.5.59';
$dtSplit=分解(“.”,$date);
回显“
”$dtSplit[0]”、“$dtSplit[1]”、“$dtSplit[2]”; 回显“
”$dtSplit[0]”、“$dtSplit[2]”、“$dtSplit[1]”; 回显“
”$dtSplit[1]。“$dtSplit[0]。”。$dtSplit[2]; 回显“
”$dtSplit[1]”、“$dtSplit[2]”、“$dtSplit[0]”; 回显“
”$dtSplit[2]。“$dtSplit[0]。”。$dtSplit[1]; 回显“
”$dtSplit[2]。“$dtSplit[1]。”。$dtSplit[0];
如果是为了更简单的任务,您可以这样做。这将消耗时间

$date = '16.5.59'; 
$dtSplit=explode(".",$date);
echo "<br>".$dtSplit[0].".".$dtSplit[1].".".$dtSplit[2];
echo "<br>".$dtSplit[0].".".$dtSplit[2].".".$dtSplit[1];
echo "<br>".$dtSplit[1].".".$dtSplit[0].".".$dtSplit[2];
echo "<br>".$dtSplit[1].".".$dtSplit[2].".".$dtSplit[0];
echo "<br>".$dtSplit[2].".".$dtSplit[0].".".$dtSplit[1];
echo "<br>".$dtSplit[2].".".$dtSplit[1].".".$dtSplit[0];
$date='16.5.59';
$dtSplit=分解(“.”,$date);
回显“
”$dtSplit[0]”、“$dtSplit[1]”、“$dtSplit[2]”; 回显“
”$dtSplit[0]”、“$dtSplit[2]”、“$dtSplit[1]”; 回显“
”$dtSplit[1]。“$dtSplit[0]。”。$dtSplit[2]; 回显“
”$dtSplit[1]”、“$dtSplit[2]”、“$dtSplit[0]”; 回显“
”$dtSplit[2]。“$dtSplit[0]。”。$dtSplit[1]; 回显“
”$dtSplit[2]。“$dtSplit[1]。”。$dtSplit[0];
$date='16.5.59';
$date\u数组=分解(“.”,$date);
$var_day=$date_数组[0];
$var_month=$date_数组[1];
>大宗报价
$var_year=$date_数组[2];
echo$new_date_format=“$var_day-$var_month-$var_year”
$date='16.5.59';
$date\u数组=分解(“.”,$date);
$var_day=$date_数组[0];
$var_month=$date_数组[1];
>大宗报价
$var_year=$date_数组[2];

echo$new_date_format=“$var_day-$var_month-$var_year”您能发布您的代码吗?$date='16.5.59';回显日期('Y-m-d',标准时间($date));你想要59.5.16格式的吗?16.5.59是dd-mm-yyyy格式的。你可以发布你的代码吗?$date='16.5.59';回显日期('Y-m-d',标准时间($date));你想要59.5.16格式的吗?16.5.59是dd-mm-yyyy格式的。我的答案很好,但似乎日期还是在1970年1月1日之前。我试着用在线PHP代码来测试代码,如果
$date
1.1.1980
它可以工作,而
1.1.1970
则不能。好吧,我想补充一下我的知识。但我需要制作日期格式。我的任务是将脱机数据转换为联机。列表从1939年开始:/我的答案是正确的,但似乎日期仍然在1970年1月1日之前。我试着用在线PHP代码来测试代码,如果
$date
1.1.1980
它可以工作,而
1.1.1970
则不能。好吧,我想补充一下我的知识。但我需要制作日期格式。我的任务是将脱机数据转换为联机。列表从1939年开始:/我只是写了所有的组合我只是写了所有的组合我们能找到1900-1999年和2000-2015年吗,或者把条件放在上面。是的!只需检查字符串的长度(
$date\u arr[0]
)。如果它是
length==4
,那么您可能不需要更改它。我们可以找到1900-1999年和2000-2015年,或者把条件放在上面吗?是的!只需检查字符串的长度(
$date\u arr[0]
)。如果它是
length==4
,那么您可能不需要更改它。