以下代碼是否存在任何問題(專門針對三元運算符的第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