PHP从HTML表单回显日期并将其从Y-m-d格式化为d-m-Y错误31-12-1969
我有一个文本链接来传递一个Y-m-d格式的日期GET,因为它是从MySQL提交的。 接收此GET的页面使用以下代码来回显我从上一页获得的日期 链接是这样的PHP从HTML表单回显日期并将其从Y-m-d格式化为d-m-Y错误31-12-1969,php,html,mysql,forms,date,Php,Html,Mysql,Forms,Date,我有一个文本链接来传递一个Y-m-d格式的日期GET,因为它是从MySQL提交的。 接收此GET的页面使用以下代码来回显我从上一页获得的日期 链接是这样的 page.php?thedate=2015-06-30 <?php echo date('d-m-Y',strtotime($_GET["thedate"]));?> 我需要显示此日期的页面必须像这样转换此日期 page.php?thedate=2015-06-30 <?php echo date('d-m-Y',st
page.php?thedate=2015-06-30
<?php echo date('d-m-Y',strtotime($_GET["thedate"]));?>
我需要显示此日期的页面必须像这样转换此日期
page.php?thedate=2015-06-30
<?php echo date('d-m-Y',strtotime($_GET["thedate"]));?>
可能是什么问题?您的代码看起来正常。但是很少有人会想到,会出什么问题: 首先:尝试以下代码:
<?php
var_dump($_GET['thedate']); // check what it is?
date_default_timezone_set('Europe/Warsaw'); // set default timezone to your zone / user zone
echo date('d-m-Y',strtotime('2015-06-30')); // check that date is working with plain text
?>
“警告!超全局变量$\u GET和$\u请求已被解码。对$\u GET或$\u请求中的元素使用urldecode()可能会产生意外和危险的结果。”
来源:我似乎无法重现错误,我得到了
30-06-2015
在你尝试在任何地方回显日期之前,你对日期做了什么吗?没有,这就是为什么奇怪的原因尝试
日期的值肯定不是“2015-06-30”。您试图转换为时间的值无效,因此它呈现01-01-1970减去一些小时,这是由于您的时区。IMHO在服务器配置中设置默认时区比在每个php文件中声明它要好得多。是的,您是对的。对于100%安全解决方案,我们可以设置:date\u default\u timezone\u set(date\u default\u timezone\u get());在index.php或配置类开头的某个地方。链接: