次の形式のタイムスタンプがあります(PHPの美しさのおかげで簡単に変更できます!)。
2011-02-12 14:44:00
このタイムスタンプが今日取得されたかどうかを確認する最も簡単な方法は何ですか?
おもう:
date('Ymd') == date('Ymd', strtotime($timestamp))
if (date('Y-m-d') == date('Y-m-d', strtotime('2011-02-12 14:44:00'))) {
// is 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);
}
比較日:$ format= 'Y-m-d'。
月の比較:$ format= 'Y-m'。
等...
あなたの場合:
if(compareDates("now",'2011-02-12 14:44:00','Y-m-d')===0){
// do stuff
}
$offset = date('Z'); //timezone offset in seconds
if (floor(($UNIX_TIMESTAMP + $offset) / 86400) == floor((mktime(0,0,0) + $offset) / 86400)){
echo "today";
}
タイムスタンプ(日付文字列ではなく)を比較したいので、これを使用して今日チェックします。
$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/55JBk
(date('Ymd') == gmdate('Ymd', $db['time']) ? 'today' : '')