繁体   English   中英

PHP - 更改日期格式

[英]PHP - Changing date format

我从运行的SQL查询得到一个结果输出以下日期($ mydate)(05/02/2011)....格式为dd / mm / yyyy ...当我运行

date('l jS \of F Y',strtotime($mydate))

我得到一个完全不同的日期输入,我收集这是因为我不使用mm / dd / yyyy格式。

我将如何交换它以使其正常工作?

干杯。

您可以使用strptime()来解析日期/时间格式。 您还可以将日期字符串转换为YYYY-MM-DD,它始终由strtotime正确解析。 例如:

$date = implode('-', array_reverse(explode('/', $date)));

但我同意其他答案。 首先查看您的数据库设置。 几乎所有数据库都能够直接输出YYYY-MM-DD格式,大多数数据库默认都会这样做。 看看为什么你没有。

我想知道为什么你的数据库的日期是dd / mm / yyyy,你使用的是什么类型的数据库? 如果MySQL,DATE字段应该输出YYYY-MM-DD,它将使用strtotime()正常运行。

你可以explode('/', $mydate)来手动拆分dd,mm和yyyy,然后重建一个新的日期字符串,或直接使用mktime()生成的数字。

以下strtotime()理解的格式列表。

哪个SQL输出这种奇怪的日期格式? 或者你自己格式化日期?

如果它始终以该格式出现,您可以使用

$newtime = preg_replace("/\d\d\/\d\d/\d\d\d\d/", "$3/$2/$1", $date);

要将其转换为yyyy / mm / dd,然后将其插入strtotime()

它绝对不是最优雅的解决方案,我实际上建议重新编写数据库(创建一个新列,运行脚本来读取每个条目,生成新日期,然后输入,删除旧日期字段,然后重命名新日期,所以这只需要做一次)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM