0

在以下 php 代码中,我试图仅显示上个月存储的 products.xml 文件中的那些产品。但是我的代码不起作用。请帮助我获得正确的输出。我还需要展示过去 24 小时和上周存储的产品。

$current_month = date("m");
$last_month = date('m', strtotime(date('-m')." -1 month"));

$xml = simplexml_load_file("products.xml");

$products = array();
foreach ($xml->product as $product) {
   if ($product->date('m') == $last_month) {
      $products[] = array( 'name' => (string)$product->name,
                           'details' => (string)$video->details );
   }    
}
4

2 回答 2

0

Strtotime 比你想象的要好。例如,这段代码;

if (date('m') > date('m', strtotime('last month')))
    echo true;
else
    echo false;

当前将输出“true” - 因为上个月是 09,而本月是 10。

但是如果这个月是 01,上个月是 12 呢?那么这将是错误的。我建议你也比较一下年份。

编辑:如果这不是问题,并且您只想针对最近添加的内容进行评估,那应该没问题。但是如果你只比较上个月的数据,你会在后年遇到问题,除非你的导入数据只包含今年的数据。

于 2012-10-23T11:33:47.470 回答
0

尝试

 $last_month = date('m', strtotime("-1 month"));

 $xml = simplexml_load_file("products.xml");

$products = array();
foreach ($xml->product as $product)
 {
  if ($product->date('m') == $last_month)
   {
$products[] = array(
'name'=>(string)$product->name,
'details'=>(string)$video->details,
    );
   }    
}
于 2012-10-23T11:40:42.143 回答