好的,所以我明白如果我在 29 日或更高的一天运行 strtotime 函数,我将引发二月错误并获得三月的结果。
我也知道如果我将日期设置为 2 月 1 日,我可以避免这个问题。
但问题就在这里。我正在滚动过去 12 个月的记录,以生成用于跟踪的销售/帐单号码。当我的循环看起来像这样时,如何在二月份询问所有记录?
setlocale( LC_MONETARY, 'en_US' );
$i = 0;
while( $i <= 11 ) {
$select = "SELECT * FROM `my_table` " .
"WHERE YEAR( billing_date ) = '" . date( 'Y', strtotime( -$i . ' month' )) . "' " .
" AND MONTH( billing_date ) = '" . date( 'm', strtotime( -$i . ' month' )) . "'";
$result = mysql_query( $select );
$num_rows = mysql_num_rows( $result );
$sales = 16 * $num_rows;
echo "<p align='center'>";
echo "Sales for " . date( 'M, Y', strtotime( '-' . $i . ' month' ) ) .
" " . money_format( '%i', $sales );
echo "</p>";
$i++;
}
如何避免二月错误?会是if
表态吗?那会是什么样子?