What are the potential pitfalls of using strftime with variables in PHP?

When using strftime with variables in PHP, a potential pitfall is that the format string may not be properly sanitized, leading to potential security vulnerabilities such as code injection. To solve this issue, it is important to properly validate and sanitize any user input before using it in the format string for strftime.

// Example of properly validating and sanitizing user input before using it with strftime
$user_input = $_GET['user_input']; // Assuming user input is coming from a form field

// Sanitize user input
$clean_input = htmlspecialchars($user_input);

// Validate and ensure it only contains allowed characters
if (preg_match('/^[a-zA-Z0-9\s]+$/', $clean_input)) {
    // Use the sanitized input with strftime
    $formatted_date = strftime("%A, %B %d, %Y", strtotime($clean_input));
    echo $formatted_date;
} else {
    echo "Invalid input";
}