在 PHP < 5.5 版本中,MessageFormatter 無法使用 DateTime 實例作為參數。實例將會被轉換為值為 0 的時間戳記(例如 1970-01-01),並會產生以下注意事項:「無法將 DateTime 類別的物件轉換為 int」。在這些舊的 PHP 版本中,您必須手動將實例轉換為時間戳記。
<?php
$datetime = new DateTime();
if (PHP_VERSION_ID < 50500) { // PHP 版本小於 5.5 需要轉換成時間戳記
MessageFormatter::formatMessage('en_US', 'Today is {0, date, full}.', array($datetime->getTimestamp()));
} else {
// 目前程式碼
MessageFormatter::formatMessage('en_US', 'Today is {0, date, full}.', array($datetime));
}
?>