如何使用 PHP 的 strtotime



我是PHP的新手,在基础知识方面有点吃力,请原谅即将出现的可怕代码。

我要做的是解析从XML文件中检索到的日期,并查看该日期是否在星期一/星期二等。

我似乎做得不对,我们非常感谢你的帮助。

<?php
    foreach ($xml as $x)
    {
        $time = strtotime($x->Start);
        echo $time;
       if(date('D', $time) === 'Mon') 
           echo "Booking for Monday";
       else if(date('D', $time) === 'Tue') 
           echo "Booking for Tuesday";
       else if(date('D', $time) === 'Wed')
          echo "Booking for Wednesday"; 
       else if(date('D', $time) === 'Thu')
          echo "Booking for Thursday"; 
       else if(date('D', $time) === 'Fri')
          echo "Booking for Friday";
   }
?>

$time没有输出任何内容,返回的唯一结果是每个XML记录(x5)的"Booking for Thursday",尽管只有两个记录落在一个星期四。

如果我通过以下方式输出结果:

echo $x->Start;

工作正常,输出"2013年7月15日上午9:3:00"。

干杯!

日期看起来像European format d-m-y,使用American format m/d/y分隔符。

注:

m/d/y或d-m-y格式的日期通过查看各种组件之间的分隔符:如果分隔符是斜线(/),则假定为美国m/d/y;而如果分隔符是短划线(-)或点(.),然后是欧洲d-m-y格式假设。

代替

$time = strtotime($x->Start);

尝试

$time = strtotime(str_replace('/','-',$x->Start));

附加信息:PHP手册

在将时间字符串($x->Start)传递给strtotime之前,必须将其转换为支持的格式之一

替换/使用。会将您的日期更改为支持格式。但要仔细检查才能确定。

$time = strtotime(str_replace('/', '.',$x->Start));

我知道你已经有了一个公认的答案,但我强烈建议你看看PHP的DateTime类。它们非常有用,可以使看似复杂的日期操作变得微不足道。

在您的特殊情况下,我会替换:-

$time = strtotime($x->Start);

带有:-

$time = DateTime::createFromFormat('d/m/Y H:i:s a', $x->Start);

然后,您可以使用DateTime::format()方法按照自己的意愿设置日期格式。

相关内容

  • 没有找到相关文章

最新更新