以下代码是否存在任何问题(专门针对三元运算符的第10行和第11行)?它似乎没有工作,我不知道什么是做错了。为什么这个三元操作符不在这种情况下工作?
$week_start = 1388991600; // Jan 5 2014
$week_end = 1401602400; // May 31 2014
// Show the first date's year if it is not in the same year as the end date
$same_years_week = ($week_start % 31536000 === $week_end % 31536000 ? true : false);
// Show the second date's month if it is not in the same month as the end date
$same_months_week = ($week_start % 2592000 === $week_end % 2592000 ? true : false);
$week_start_range = date('F j' . (!$same_years_week ? ', Y' : ''), $week_start);
$week_end_range = date((!$same_months_week ? 'F ' : '') . ' j, Y', $week_end);
$week_range_label = $week_start_range .' — ' . $week_end_range;
print $week_range_label;
看来,如果10号线和在我的代码11,我做!$same_years_week
或!$same_months_week
那么这两个始终评估为真(不管是什么日期/年设置为),如果我删除了!无论给定日期和年/月是什么,它们中的任何一个都会被评估为假。
我有它在沙箱设在这里:http://sandbox.onlinephpfunctions.com/code/2c61baf7e9d2377dabbdd653921dfba7826580a0
而且我用http://www.onlineconversion.com/unix_time.htm生成我最初的变量(模拟在我的网站我收到他们从数据库格式)。
马克,谢谢,这是我最终使用的(也用于检查相同的月份)。不知道为什么我一开始并没有走这条路线,除了我在我的在线调查中读过某些时候使用过我的上述方法。我相信这个数字(3153600)是一年中的秒数,我相信它可以用于我的代码,因为我的日期中没有设置时间。 – SweetTomato
是的,如果你的时间戳是纯粹的日期值,并且h:m:s被清零,那么它会工作......除非其中一个日期代表闰年,在这种情况下它将被再次破坏。 –
它们纯粹是一个日期值,没有一个日期处于闰年,但它仍然不起作用。这很奇怪。 – SweetTomato