У меня есть временная метка в следующем формате (что легко может быть изменено благодаря красоте PHP!).
2011-02-12 14:44:00
- PHP-скрипт, который может извлекать текст из нескольких тегов заголовков определенного веб-сайта?
- Загрузка изображения на facebook
- Facebook Graph API - вкладка страницы Дополнительные разрешения
- Поиск пользователей Facebook API отфильтрован по странам
- php parse_url reverse - проанализированный URL-адрес
Каков самый быстрый / самый простой способ проверить, была ли эта метка взята сегодня?
Я думаю:
date('Ymd') == date('Ymd', strtotime($timestamp))
if (date('Ym-d') == date('Ym-d', strtotime('2011-02-12 14:44:00'))) { // is today }
$offset = date('Z'); //timezone offset in seconds if (floor(($UNIX_TIMESTAMP + $offset) / 86400) == floor((mktime(0,0,0) + $offset) / 86400)){ echo "today"; }
Это то, что я использую для такого рода задач:
/** date comparator restricted by $format. @param {int/string/Datetime} $timeA @param {int/string/Datetime} $timeB @param {string} $format @returns : 0 if same. 1 if $timeA before $timeB. -1 if after */ function compareDates($timeA,$timeB,$format){ $dateA=$timeA instanceof Datetime?$timeA:(is_numeric($timeA)?(new \Datetime())->setTimestamp($timeA):(new \Datetime("".$timeA))); $dateB=$timeB instanceof Datetime?$timeB:(is_numeric($timeB)?(new \Datetime())->setTimestamp($timeB):(new \Datetime("".$timeB))); return $dateA->format($format)==$dateB->format($format)?0:($dateA->getTimestamp()<$dateB->getTimestamp()?1:-1); }
compare day: $ format = 'Ym-d'.
сравнить месяц: $ format = 'Y-m'.
и т.д…
в твоем случае :
if(compareDates("now",'2011-02-12 14:44:00','Ym-d')===0){ // do stuff }
Я предпочитаю сравнивать временные метки (а не строки даты), поэтому я использую это для проверки сегодня.
$dayString = "2011-02-12 14:44:00"; $dayStringSub = substr($dayString, 0, 10); $isToday = ( strtotime('now') >= strtotime($dayStringSub . " 00:00") && strtotime('now') < strtotime($dayStringSub . " 23:59") );
Скрипт: http://ideone.com/55JBku
(date('Ymd') == gmdate('Ymd', $db['time']) ? 'today' : '')
вы имеете в виду это?
if( strtotime( date( 'Ymd' , strtotime( '2011-02-12 14:44:00' ) ) ) == strtotime( date( 'Ymd' ) ) ) { //IS TODAY; }