Ответы пользователя по тегу Работа с датой/временем
  • Как получить даты последних пяти дней?

    Creamov
    @Creamov
    Senior Fullstack Software Engineer
    Пример с использованием UnixTimeStamp:

    function getLastNDays($days_count = 5) {
    	$today = time();
    	$last_days = [];
    
    	for ($i = 0; $i < $days_count; $i++) {
    	    $prev_day = $today - (3600 * 24 * $i);
    	    array_push($last_days, $prev_day);
    	}
    
    	return $last_days;
    }
    
    // Вывод
    $days = array_map(function($item){
    	return date('d M', $item);
    }, getLastNDays(5));
    
    asort($days);
    
    echo implode(', ', $days); // 11 Aug, 12 Aug, 13 Aug, 14 Aug, 15 Aug

    Или вариант с DateTime:

    function getLastNDays($days_count = 5) {
    	$datetime = new DateTime();
    	$last_days = [];
    
    	for ($i = 0; $i < $days_count; $i++) {
    	  array_push($last_days, clone $datetime);
    		$datetime->sub(new DateInterval('P1D'));
    	}
    
    	return $last_days;
    }
    
    // Вывод
    $days = array_map(function($item){
    	return $item->format('d M');
    }, getLastNDays(5));
    
    asort($days);
    
    echo implode(', ', $days); // 11 Aug, 12 Aug, 13 Aug, 14 Aug, 15 Aug

    В следующий раз приводите примеры своего кода.
    Ответ написан
    1 комментарий