在php中转换过去日期格式
我正在将excel数据上传到mysql中。在这些日期中保存16.5.59(dd.mm.yy)格式。我尝试使用此代码更改此设置在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)上
$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
,那么您可能不需要更改它。