我遇到了问题,条件if ($today <= $ends)
无法正常工作,因为它会在发生这种情况时打印出来。它只是整个条件中不起作用的部分,并且仅当$ today value date与$ end date value相同时。
总条件为:if(($today >= $starts) && ($today <= $ends)){
这里是我正在使用的代码:
<?php
$old_format_starts = $entity->field_video_available_d[LANGUAGE_NONE][0]['value'];
$old_format_ends = $entity->field_video_until[LANGUAGE_NONE][0]['value'];
$starts = DateTime::createFromFormat('Y-m-d H:i:s', $old_format_starts);
$ends = DateTime::createFromFormat('jS F Y H:i:s', $old_format_ends);
$today = new DateTime() ;
print $starts->format('Y-m-d'); it´s printing 2013-12-29
print $ends->format('Y-m-d'); it´s printing 2014-02-27
print $today->format('Y-m-d'); it´s printing 2014-02-27
if(($today >= $starts) && ($today <= $ends)){
//Do your thing
print render(field_view_field('node', $entity, 'field_concert_url', array('label'=>'hidden',)));
}
?>
只有当$ends
变量的值与今天日期相同时才会出现问题,然后整个条件的这部分不起作用:($today <= $ends)
我知道它是没有工作,因为它没有打印这个=&gt; print render(field_view_field('node', $entity, 'field_concert_url', array('label'=>'hidden',)));
它应该打印即使$today = $ends.
如果今天是$ends
变量的前一天,那么只打印和工作一切,但如果&today = $ends
所以同一天那么它就不会打印任何内容!我不知道为什么?因为条件是<=
,而不仅仅是<
我还尝试以下一种方式放置条件,想知道双(() ())
括号是否影响某些东西:
if($today >= $starts && $today <= $ends){
但它也不起作用!请帮忙!!在此先感谢!!
所以它在以下情况下起作用:
$starts = 2013-12-29
$ends = 2014-02-28
$today = 2014-02-27
但在以下情况下无效:
$starts = 2013-12-29
$ends = 2014-02-27
$today = 2014-02-27
日期值正在打印好,只有条件的一部分:($today <= $ends)
不起作用,实际上它只是<=
不起作用但是如果条件只是<
然后就行了。
请帮助!!!
谢谢大家的快速帮助!!!
答案 0 :(得分:0)
获取$ starts和$以相同的格式结束。变化
$starts = DateTime::createFromFormat('Y-m-d H:i:s', $old_format_starts);
$ends = DateTime::createFromFormat('jS F Y H:i:s', $old_format_ends);
为:
$starts = DateTime::createFromFormat('Y-m-d H:i:s', $old_format_starts);
$ends = DateTime::createFromFormat('Y-m-d H:i:s', $old_format_ends);
答案 1 :(得分:0)
回应timestamps
并检查它们:
$today = 1393532415
$ends = 1393480800
由于您没有提供任何时间信息,因此$ends
将是00:00
的日期。
答案 2 :(得分:0)
不是包含时间部分的$ start,$ end和$ today对象。打印时,只打印日期部分。
在下方打印以查看$ ends和$ today是否完全相同
print $ends->format('Y-m-d H i s');
print $today->format('Y-m-d H i s');