PHP:基于日期的条件
我有一个这样的日期:2011年2月16日 我想做的是用一个简单的PHP条件检查今天的日期是当天还是之后,例如:PHP:基于日期的条件,php,date,Php,Date,我有一个这样的日期:2011年2月16日 我想做的是用一个简单的PHP条件检查今天的日期是当天还是之后,例如: <?php $mydate = '26/01/2010'; if($mydate == date('dd/mm/yyyy') { echo 'last day to reply'; } elseif($mydate == 'date after todays date') { echo 'post
<?php
$mydate = '26/01/2010';
if($mydate == date('dd/mm/yyyy')
{
echo 'last day to reply';
}
elseif($mydate == 'date after todays date')
{
echo 'post has expired and you cannot reply';
}
else
{
echo 'post has NOT expired and you can reply';
}
?>
最简单的方法是转换所需的日期和时间(最后日期和最终截止日期),然后直接将当前日期与这些日期和时间进行比较。最简单的方法是转换所需的日期和时间(最后日期和最终截止日期)然后直接比较电流和电流。我强烈建议您查阅课堂文档;如果你不感兴趣;a会有用的 我强烈建议您查阅课堂文档;如果你不感兴趣;a会有用的 您可以使用mktime
(或者strotime
,如果您可以以适当的格式获取您的结束日期,即2011年2月17日或2011年2月17日):
$mydate='17/02/2011';
$mydate_parts=分解(“/”,$mydate);
$mydate_timestamp=mktime(0,0,0,$mydate_parts[1]、$mydate_parts[0]、$mydate_parts[2]);
如果($mydate==日期('d/m/Y'))
{
回声“最后一天回复”;
}
elseif($mydate\u timestamp
您可以使用mktime
(或者strotime
,如果您可以以适当的格式获取您的结束日期,即2011年2月17日或2011年2月17日):
$mydate='17/02/2011';
$mydate_parts=分解(“/”,$mydate);
$mydate_timestamp=mktime(0,0,0,$mydate_parts[1]、$mydate_parts[0]、$mydate_parts[2]);
如果($mydate==日期('d/m/Y'))
{
回声“最后一天回复”;
}
elseif($mydate\u timestamp
最简单的方法是以正确的格式记录日期。特别是如果它来自数据库
<?php
$mydate = '2010-01-26';
$curdate = date('Y-m-d');
if($curdate == $mydate)
{
echo 'last day to reply';
}
elseif($curdate > $mydate)
{
echo 'post has expired and you cannot reply';
}
else
{
echo 'post has NOT expired and you can reply';
}
?>
请注意,通过阅读此代码,您理解它的功能不会有任何问题。
这几乎是自然语言,不言自明
与这里的所有其他代码不同。最简单的方法是以正确的格式记录日期。特别是如果它来自数据库
<?php
$mydate = '2010-01-26';
$curdate = date('Y-m-d');
if($curdate == $mydate)
{
echo 'last day to reply';
}
elseif($curdate > $mydate)
{
echo 'post has expired and you cannot reply';
}
else
{
echo 'post has NOT expired and you can reply';
}
?>
请注意,通过阅读此代码,您理解它的功能不会有任何问题。
这几乎是自然语言,不言自明
与此处的所有其他代码不同。与其比较视觉日期,不如比较时间戳:
$deadline = strtotime('2010-01-26');
$today = mktime(0, 0, 0);
if ($today == $deadline) {
echo 'last day';
}
else if ($today > $deadline) {
echo 'past day';
}
else {
echo 'a-okay';
}
与其比较视觉日期,不如比较时间戳:
$deadline = strtotime('2010-01-26');
$today = mktime(0, 0, 0);
if ($today == $deadline) {
echo 'last day';
}
else if ($today > $deadline) {
echo 'past day';
}
else {
echo 'a-okay';
}
简单地说,你会想做一些事情,比如:
如果(strotime($date)>date()){
回声“你的帖子已经过期”;
}
比较字符串的日期是非常困难的,特别是当你认为“2/3/4”可以是8个不同的日期(2月3日,04,3月4日,02;等等)中的任何一个。在PHP中将日期/时间保留为实际的时间戳值,这样比较就容易多了。简单地说,您可能希望执行以下操作:
如果(strotime($date)>date()){
回声“你的帖子已经过期”;
}
比较字符串的日期是非常困难的,特别是当你认为“2/3/4”可以是8个不同的日期(2月3日,04,3月4日,02;等等)中的任何一个。在PHP中,将日期/时间保留为实际的时间戳值会使比较更加容易。以下内容可能是最快的方法
if( mktime(0,0,0,substr($mydate, 3, 2), substr($mydate, 0, 2), substr($mydate, 6, 4) ) > time() )
对你来说,以下几点可能是最快的
if( mktime(0,0,0,substr($mydate, 3, 2), substr($mydate, 0, 2), substr($mydate, 6, 4) ) > time() )
我不明白你的示例日期-2011年2月17日怎么可能是最后一天?截止日期是18日还是16日?我不明白你的示例日期-2011年2月17日怎么可能是最后一天?截止日期是18日还是16日?如果他们在截止日期后1秒,他们无法回复!您也可以在这里使用strotime()
而不是mktime()
。不过这并不重要。我想你的意思也是>time()
?@tandu err,如果今天是2011年2月17日,那么它将打印“最后一天”。如果时间戳小于当前时间,则它已过期,否则他们可以回复。而且strotime
不懂d/m/Y格式,只好用mktime
啊,好电话,对不起。我仍然认为你的意思是>时间()。@tandu不,我的意思是如果他们在截止日期后一秒钟,他们就不能回复!您也可以在这里使用strotime()
而不是mktime()
。不过这并不重要。我想你的意思也是>time()
?@tandu err,如果今天是2011年2月17日,那么它将打印“最后一天”。如果时间戳小于当前时间,则它已过期,否则他们可以回复。而且strotime
不懂d/m/Y格式,只好用mktime
啊,好电话,对不起。我仍然认为你的意思是>时间()。@tandu不,我的意思是