我从格式化为dd-mm-YYYY的数据库中提取日期...我想要检查的是当前日期,如果当前日期在数据库日期之前,则需要打印数据库日期,如果它之后它需要打印'继续'.
干杯.
Cfr*_*eak 97
if( strtotime($database_date) > strtotime('now') ) {
...
Run Code Online (Sandbox Code Playgroud)
kai*_*ser 29
这是所有可能检查的列表......
"约会过日了吗?"
$date = strtotime( $date );
$date > date( "U" )
$date > mktime( 0, 0, 0 )
$date > strtotime( 'now' )
$date > time()
$date > abs( intval( $_SERVER['REQUEST_TIME'] ) )
Run Code Online (Sandbox Code Playgroud)
我在1.000.000迭代上进行了一些性能测试并计算了平均值 - 有序最快到最慢.
+---------------------+---------------+
| method | time |
+---------------------+---------------+
| time() | 0.0000006732 |
| $_SERVER | 0.0000009131 |
| date("U") | 0.0000028951 |
| mktime(0,0,0) | 0.000003906 |
| strtotime("now") | 0.0000045032 |
| new DateTime("now") | 0.0000053365 |
+---------------------+---------------+
Run Code Online (Sandbox Code Playgroud)
ProTip:只需查看函数的长度,您就可以轻松记住最快的速度.时间越长,功能越慢.
针对上述每种可能性运行以下循环.为了便于阅读,我将值转换为非科学记数法.
$loops = 1000000;
$start = microtime( true );
for ( $i = 0; $i < $loops; $i++ )
date( "U" );
printf(
'| date("U") | %s |'."\n",
rtrim( sprintf( '%.10F', ( microtime( true ) - $start ) / $loops ), '0' )
);
Run Code Online (Sandbox Code Playgroud)
time() 似乎仍然是最快的.
我想设定一个特定的日期,因此已在2013年12月2日之前使用此日期做事
if(mktime(0,0,0,12,2,2013) > strtotime('now')) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
该0,0,0是午夜,12是一个月,2是白天和2013是一年。