php中的日期问题
在我的php应用程序中,我有以下代码:php中的日期问题,php,mysql,Php,Mysql,在我的php应用程序中,我有以下代码: <?php echo date("d/m/ Y ",strtotime($row["m_date"]));?> 其中,$row[“m_date”]正在从数据库中提取数据 问题是除了2011年2月27日之外,所有日期都打印得很好。它正在打印1/1/1970 数据库中的日期很好,并以PDF格式正确打印。如果将日期存储在数据库中作为时间戳,则应该可以使用 <?php echo date("d/m/Y",$row["m_date"]);?&
<?php echo date("d/m/ Y ",strtotime($row["m_date"]));?>
其中,$row[“m_date”]
正在从数据库中提取数据
问题是除了2011年2月27日之外,所有日期都打印得很好。它正在打印1/1/1970
数据库中的日期很好,并以PDF格式正确打印。如果将日期存储在数据库中作为时间戳,则应该可以使用
<?php echo date("d/m/Y",$row["m_date"]);?>
<?php echo date("d/m/Y",strtotime($row["m_date"]));?>
如果您将日期存储在数据库中作为日期或日期时间,则应该可以使用
<?php echo date("d/m/Y",$row["m_date"]);?>
<?php echo date("d/m/Y",strtotime($row["m_date"]));?>
如果您将日期作为时间戳存储在数据库中,则应该可以使用
<?php echo date("d/m/Y",$row["m_date"]);?>
<?php echo date("d/m/Y",strtotime($row["m_date"]));?>
如果您将日期存储在数据库中作为日期或日期时间,则应该可以使用
<?php echo date("d/m/Y",$row["m_date"]);?>
<?php echo date("d/m/Y",strtotime($row["m_date"]));?>
m_日期如何存储在数据库中?它是datetime对象吗?或者一根绳子。 strotime的问题在于,它并不擅长破译书面日期。因此,类似于2011年2月27日的
27
会出现问题,而2011年2月27日的27
则不会出现任何问题
因此有两种解决方案:
dd/mm/yyyy
)李>
m_日期如何存储在数据库中?它是datetime对象吗?或者一根绳子。 strotime的问题在于,它并不擅长破译书面日期。因此,类似于2011年2月27日的
27
会出现问题,而2011年2月27日的27
则不会出现任何问题
因此有两种解决方案:
dd/mm/yyyy
)李>
我假设您从数据库中获取的日期是字符串
27/2/2011
,因为这很可能就是发生的情况(如果我错了,请纠正我)
PHP将字符串27/2/2011
视为m/d/Y
格式,而不是d/m/Y
,并尝试在该假设下进行解析。因为该格式下的日期无效strotime
返回false
。将false
作为date
的时间戳参数取为0
,这是1970年1月1日的时间戳
您需要做的是从数据库中获取另一种格式的日期(或者更好的是,作为时间戳),或者自己解析它(比如使用explode
)
祝你好运,Alin我假设您从数据库中获取的日期是字符串
27/2/2011
,因为这很可能就是发生的情况(如果我错了,请纠正我)
PHP将字符串27/2/2011
视为m/d/Y
格式,而不是d/m/Y
,并尝试在该假设下进行解析。因为该格式下的日期无效strotime
返回false
。将false
作为date
的时间戳参数取为0
,这是1970年1月1日的时间戳
您需要做的是从数据库中获取另一种格式的日期(或者更好的是,作为时间戳),或者自己解析它(比如使用explode
)
祝你好运,Alin数据库应该能够将日期作为UNIX时间戳返回给您。例如,MySQL具有UNIX_TIMESTAMP()函数
SELECT UNIX_TIMESTAMP(date_column) FROM table;
博士后有日期部分
SELECT DATE_PART('epoch', date_column) FROM table;
大多数其他数据库应该具有类似的功能。如果可以将日期作为UNIX时间戳输出,则可以将其直接传递到date(),而不必使用strotime()
当然,所有这些都假设您正在为相关列使用时态数据类型(timestamp、datetime、timestamp with time zone等),而不仅仅是存储字符串。您使用的是时态类型,对吗?如果没有,那么为什么不呢?数据库应该能够将日期作为UNIX时间戳返回给您。例如,MySQL具有UNIX_TIMESTAMP()函数
SELECT UNIX_TIMESTAMP(date_column) FROM table;
博士后有日期部分
SELECT DATE_PART('epoch', date_column) FROM table;
大多数其他数据库应该具有类似的功能。如果可以将日期作为UNIX时间戳输出,则可以将其直接传递到date(),而不必使用strotime()
当然,所有这些都假设您正在为相关列使用时态数据类型(timestamp、datetime、timestamp with time zone等),而不仅仅是存储字符串。您使用的是时态类型,对吗?如果没有,那么为什么不呢?请向我们展示代码和生成的html或文本等。您的数据库字段结构是什么?您是否将日期存储在数据库中作为时间戳或日期时间?请执行
$row[“m_date”]的var_dump
并告诉我们您得到了什么。请向我们显示代码和生成的html或文本等。您的数据库字段结构是什么?您是否将日期存储在数据库中作为时间戳或日期时间?请对$row[“m_date”]
执行var_dump
并告诉我们您得到了什么。