I just now wrote function for check two date difference and display in needed format. I user many if-else
operations. Can be shorted my code? Can be used here ternary operations instead of if-else
?
$ date1 = '2018-04-30 10:36:29'; $ date2 = '2018-04-30 10:35:29'; echo dateDiff($ date1, $ date2); function dateDiff($ date1, $ date2) { $ date_1 = new DateTime($ date1); $ date_2 = new DateTime($ date2); $ diff = $ date_1->diff($ date_2); if($ diff->days > 365){ return $ date_1->format('Y-m-d'); } elseif($ diff->days < 366 AND $ diff->days > 7){ return $ date_1->format('M d'); } elseif($ diff->days > 2 AND $ diff->days < 8){ return $ date_1->format('L - H:i'); } elseif($ diff->days == 2) return "Yesterday ".$ date_1->format('H:i'); elseif($ diff->days < 2 AND $ diff->days > 0 OR $ diff->days == 0 AND $ diff->h > 1) return $ date_1->format('H:i'); elseif($ diff->days == 0 AND $ diff->h < 1 AND $ diff->i >= 1) return $ diff->i." min ago"; elseif($ diff->days == 0 AND $ diff->h < 1 AND $ diff->i < 1) return "just now"; else return $ error = "Error!"; }