Are there any potential pitfalls to be aware of when using the strftime %j function in PHP for date calculations?

When using the %j function in PHP's strftime for date calculations, be aware that it returns the day of the year starting from 1 (January 1st = 1, December 31st = 365 or 366). One potential pitfall is not accounting for leap years, which have 366 days instead of 365. To handle this, you can check if the current year is a leap year and adjust the calculation accordingly.

// Get the current date
$currentDate = new DateTime();

// Check if the current year is a leap year
$isLeapYear = date('L', $currentDate->getTimestamp());

// Get the day of the year
$dayOfYear = $currentDate->format('z') + 1;

// Adjust for leap year
if ($isLeapYear && $dayOfYear >= 60) {
    $dayOfYear++;
}

echo "Day of the year: " . $dayOfYear;