PHP 日期显示“1970-01-01”转换后
我有一个日期格式为 dd/mm/yyyy 的表单。为了搜索数据库,我将日期格式转换为 yyyy-mm-dd 。但是当我echo
它时,它显示1970-01-01
。 PHP 代码如下:
$date1 = $_REQUEST['date'];
echo date('Y-m-d', strtotime($date1));
为什么会发生这种情况?如何将其格式化为yyyy-mm-dd
?
I have a form in which date format is dd/mm/yyyy
. For searching database , I hanverted the date format to yyyy-mm-dd
. But when I echo
it, it showing 1970-01-01
. The PHP code is below:
$date1 = $_REQUEST['date'];
echo date('Y-m-d', strtotime($date1));
Why is it happening? How can I format it to yyyy-mm-dd
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
将
/
替换为-
:Replace
/
with-
:1970 年 1 月 1 日是所谓的 Unix 纪元。这是他们开始计算 Unix 时间 的日期。如果您将此日期作为返回值,通常意味着日期到 Unix 时间戳的转换返回了(接近)零的结果。所以日期转换不成功。很可能是因为它收到了错误的输入。
换句话说,您的
strtotime($date1)
返回 0,这意味着$date1
以 strtotime 函数不受支持的格式传递。January 1, 1970 is the so called Unix epoch. It's the date where they started counting the Unix time. If you get this date as a return value, it usually means that the conversion of your date to the Unix timestamp returned a (near-) zero result. So the date conversion doesn't succeed. Most likely because it receives a wrong input.
In other words, your
strtotime($date1)
returns 0, meaning that$date1
is passed in an unsupported format for the strtotime function.O/P:给定的日期是错误的
O/P : Given date is wrong
当
$date
中存在有效的date()
时,这将正确显示,否则不显示任何内容。为我解决了这个问题。
This will display properly when there is a valid
date()
in$date
and display nothing if not.Solved the issue for me.
另一种解决方法:
将日期选择器
dd/mm/yyyy
转换为yyyy-mm-dd
Another workaround:
Convert datepicker
dd/mm/yyyy
toyyyy-mm-dd
问题是,当您的数据设置为 000-00-00 或为空时,您必须仔细检查并提供正确的信息,此问题就会消失。我希望这有帮助。
The issue is when your data is set to 000-00-00 or empty you must double-check and give the correct information and this issue will go away. I hope this helps.
对于 php 5.3+ 使用以下代码:
对于 php 5.2 使用以下代码:
Use below code for php 5.3+:
Use below code for php 5.2:
最后我找到了一行代码来解决这个问题
finally i have found a one line code to solve this problem