所以基本上,我想知道今天如何用PHP获取今天的日期。基本上我可以使用什么功能来获得它。
我尝试了以下内容:strtotime('now')
但是这给了我一个类似1362992653
的数字,我无法与之合作。
我试图按照以下格式20130311
以今年/月/日的方式获取今天的日期,这样我就可以从中减去7。所以我的if语句看起来像这样
$todaydate = some function;
$mydate = 20130311 <-- will be in this format;
$oneweekprior = $todaydate - 7;
if ($mydate > $oneweekprior && $mydate < $todaysdate) {
then do my stuff;
}
答案 0 :(得分:3)
$todayEpoch = strtotime(date('Y-m-d'));
$mydate = strtotime('20130311');
$oneweekprior = $todayEpoch - 7*24*60*60;
if ($mydate > $oneweekprior && $mydate < $todaysdate) {
then do my stuff;
}
答案 1 :(得分:2)
你得到的那个号码,即所谓的unix时间戳 - 自1970年1月1日以来的秒数,主要是你应该用来做你想做的事情:
$todaydate = time(); // same as strtotime('now'), but without overhead of parsing 'now'
$mydate = strtotime('20130311'); // turn your date into timestamp
$oneweekprior = $todaydate - 7*24*60*60; // today - one week in seconds
// or
//$oneweekprior = strtotime('-7 days');
if ($mydate > $oneweekprior && $mydate < $todaysdate) {
// do something
}
使用strftime
或date
函数将时间戳恢复为人类可读形式:
echo strftime('%Y%m%d', $todaydate);
请阅读documentation了解PHP中的日期函数
比较你想要的日期的想法非常糟糕,我们假设今天是20130301
,要检查的日期是20130228
- 你的解决方案就是:
$mydate = 20130228;
$today = 20130301;
$weekago = $today - 7;
// $mydate should pass this test, but it won't because $weekago is equal 20130294 !!
if ($mydate > $weekago && $mydate < $today) {
}
答案 2 :(得分:0)
试试这个:
$now = time();
$one_week_ago = $now - ( 60 * 60 * 24 * 7 );
$date_today = date( 'Ymd', $now );
$date_week_ago = date( 'Ymd', $one_week_ago );
echo 'today: ' . $date_today . '<br /><br />';
echo 'week-ago: ' . $date_week_ago . '<br /><br />';
您从strtotime('now')获得的时间称为 Epoch Time (或Unix time \ POSIX time ),这是数字自1970年1月1日以来的秒数。所以,time()也会给你这个数字,你可以从一周前减去1周的秒数来获得纪元时间。
→有关日期()的更多信息,包括日期格式的“Ymd”等不同字符串,请访问:http://php.net/manual/en/function.date.php