What are the best practices for handling date and time calculations in PHP when implementing a restriction on email sending frequency?

When implementing a restriction on email sending frequency based on a specific time interval, it is important to store the timestamp of the last sent email and compare it with the current time to determine if a new email can be sent. This can be achieved by using PHP's date and time functions to calculate the time difference between the last sent email and the current time.

// Get the timestamp of the last sent email from the database
$lastSentEmailTimestamp = strtotime($lastSentEmailTimestampFromDatabase);

// Set the time interval for sending emails (e.g. 24 hours)
$emailSendingInterval = 24 * 60 * 60; // 24 hours in seconds

// Calculate the current timestamp
$currentTimestamp = time();

// Calculate the time difference between the last sent email and the current time
$timeDifference = $currentTimestamp - $lastSentEmailTimestamp;

// Check if the time difference is greater than or equal to the email sending interval
if ($timeDifference >= $emailSendingInterval) {
    // Send the email
    sendEmail();
    
    // Update the timestamp of the last sent email in the database
    updateLastSentEmailTimestampInDatabase($currentTimestamp);
} else {
    // Do not send the email
    echo "Email sending frequency limit reached. Please try again later.";
}