The DateTime and DateTimeImmutable classes represent points in time and support formatting, arithmetic (via DateInterval), and timezone conversion. DateTimeImmutable is preferred in modern code because its methods return new instances instead of mutating state.
The date() function formats timestamps with format characters like 'Y-m-d H:i:s', while strtotime() parses human-readable date strings into Unix timestamps.