Datetime format check in php
我如何检查我的数据库中的拍卖是否已过期? 我在MySQL中有一个datetime列,我相信它具有以下格式:YYY-MM-DD hh:mm:ss。 如果是这种情况,则以下检查工作 - 即想要从数据库中的表中仅选择过期的拍卖...
1 2 3 4 5 6 7 8 9 10 11
| <?php
//Some code
$auctioncheck = mysql_query("
SELECT * FROM auction WHERE ($date_time > finish_time)
");
?> |
而"完成时间"是上述格式的数据库中的列。 假设这是有效的,我实际上如何将当前日期变成相同的格式? 如果有人知道我会非常感激的欢呼。 如果上述查询不起作用,则需要更多其他内容。 再次感谢。
哦,当然我会定义date_time变量来开始
-
可以粘贴$date_time的值吗?
-
对不起,我还没有测试过。 因为我不确定如何生成$ date_time(当前时间)开始。 任何的想法?
-
SO上有很多类似的问题。
-
HS:不要忘记通过对mysql请求中包含的每个变量使用mysqli_real_escape_string()来防止mysql注入
你真的需要$date_time变量吗? 最简单的方法是SELECT * FROM auction WHERE finish_time < NOW()。 这样你就可以获得结果,而不必从PHP设置日期。
您可以使用
1 2 3 4 5 6 7 8 9 10 11
| <?php
//Some code
$date_time=strtotime($date_time);
$auctioncheck = mysql_query("
SELECT * FROM auction WHERE ( $date_time > UNIX_TIMESTAMP(finish_time))
");
?> |
功能日期是为它做的:
1 2
| // Get the current date
$date_time = date("y-m-d H:i:s"); |
查看文档页面以查看其他格式标志;)
-
我已经把它用了,但显示的时间是提前一小时。可能造成这种差异的原因是什么?
-
这可以为您提供服务器时区的时间。也许您的当地时间不同。请注意,如果比较时间,则必须比较同一时区的时间。我建议使用数据库服务器的时区。
-
这是一个常见的问题,常见的答案,至少我已经足够诚实地提到那些要求在堆栈溢出中发帖的人不像假装是某个"大师",如果我仔细观察,我会发现你有简单地复制和粘贴。为什么要这么努力地破坏其他人的努力呢?
-
我不是那个敦促海报接受我答案的人,而是继续编辑答案,让所有其他人都知道。抱歉让你失望,但我理解日期的简单格式字符串语法,所以不,我不需要复制/粘贴任何东西;)
此解决方案:
1 2 3 4 5
| // to show both date and time,
$date->get('YYYY-MM-dd HH:mm:ss');
// or, to show date only
$date->get('YYYY-MM-dd') |
来自这篇文章:PHP Zend日期格式
这是另一个解决方案:如何在MM / dd / yyyy中格式化日期HH:mm:ss格式在javascript中?
并在PHP中执行:
如何在PHP中获取当前日期和时间?
-
非常感谢,我会看看查询是否在此基础上运行。你有预感吗?我的意思是你通常可以通过使用">"看到哪两个日期是"更大"(更近期)。
-
在大于号后面,您需要比较格式相同。 stackoverflow.com/questions/6370538/&hellip ;.如果我的解决方案适合您,请接受。
-
不需要使用Zend框架来获取日期,PHP的本机函数就足够了;)
-
我给了另一种选择:)
-
你知道为什么时间会提前一小时吗?时区肯定。我需要修补什么?
-
如果时间要准确,那么Javascript替代方案是不可接受的。客户可以随意调整他想要的任何内容并发送他希望的日期时间。因此,最好使用PHP或SQL请求从服务器获取日期。
-
是的我正在使用PHP。但是当我做"print_r(...)"的时候还有一小时。奇?
-
看到更新的答案,PHP中有第三种选择
-
不要接受你不使用的答案;)
-
如前所述"请参阅更新的答案,PHP中有第三种选择"
-
最糟糕的回答。你只需要一些其他优雅的方法来完成一个简单的SQL请求,只需查看其他答案;)