首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将PHP对象转换为DateTime日期的字符串表示形式

将PHP对象转换为DateTime日期的字符串表示形式
EN

Stack Overflow用户
提问于 2008-12-28 20:01:13
回答 2查看 15.8K关注 0票数 3

我有一个要存储在Date MySQL列中的DateTime。我使用的是MySQLi和预准备语句。

绑定参数时,不能将date指定为类型,只能指定字符串和整数。

如何将DateTime转换为MySQL日期字符串表示形式?关于DateTime类的文档很少。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-12-28 20:20:50

我几乎关闭了它作为Convert from MySQL datetime to another format with PHP的副本,但我认为它实际上是相反的问题。这个问题问的是如何格式化从MySQL获取的日期,而您问的是如何格式化输入到查询中的日期。

选项1:

代码语言:javascript
复制
SELECT * FROM MyTable WHERE DateTimeCol = ?

您可以将该值格式化为MySQL需要的YYYY-MM-DD HH:MM格式:

代码语言:javascript
复制
<?php $mysql_date = date('Y-m-d H:i:s', $timestamp); ?>

然后将其作为字符串参数提交给查询。

选项2:

代码语言:javascript
复制
SELECT * FROM MyTable WHERE DateTimeCol = FROM_UNIXTIME(?)

然后,您可以将时间戳值作为数字参数提交给查询。

选项3:

代码语言:javascript
复制
SELECT * FROM MyTable WHERE DateTimeCol = STR_TO_DATE(?, '%m/%d/%y')

如果您为MySQL的STR_TO_DATE()函数指定了格式,那么您可以提交各种各样的日期/时间字符串表示。有关格式化代码,请参见DATE_FORMAT()函数。

票数 3
EN

Stack Overflow用户

发布于 2008-12-28 20:49:49

因为PHP5引入的DateTime类的文档很少,所以我不推荐使用它。我发现使用常规时间戳要容易得多!

但是,如果您仍然想使用DateTime对象,一个解决方案是在将这些对象存储到数据库中之前将它们转换为(unix)时间戳。从数据库读取信息后,将时间戳转换回DateTime对象。

要从时间戳创建DateTime-object,请使用带有时间戳作为参数的date_create()。要获得自Unix时代以来的秒数的对象表示,请使用date_format($object, 'U') (大写U)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/396610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档