Wrong date time format with time < 1976

I have a problem with date time formater in yii2,

This is my simple code (console app):


public function actionCvDate() {

        echo "Default timezone: " . date_default_timezone_get() . "\n";

        echo "Yii date time format: " . \Yii::$app->formatter->datetimeFormat . " timezone: " . \Yii::$app->formatter->timeZone. "\n";


        $time = mktime(0, 0, 0, 1, 14, 1971);

        echo "Timestamp: " . $time . "\n";

        echo "To date time string (Yii): " . \Yii::$app->formatter->asDatetime($time) . "\n";

        echo "To date string (Yii): " . \Yii::$app->formatter->asDate($time) . "\n";

        echo "Date (PHP): " . date("d-m-Y H:i:s", $time) . "\n";


        return null;

    }

When i run in my local machine (Linux Mint 17, PHP 5.6.18), it work:


$ ./yii test/cv-date

Default timezone: Asia/Ho_Chi_Minh

Yii date time format: php:d/m/Y H:i:s timezone: Asia/Ho_Chi_Minh

Timestamp: 32630400

To date time string (Yii): 14/01/1971 00:00:00

To date string (Yii): 14/01/1971

Date (PHP): 14-01-1971 00:00:00

But when i run on my server (Centos 6.6, PHP 5.6.18) it display wrong time:


$ ./yii test/cv-date

Default timezone: Asia/Ho_Chi_Minh

Yii date time format: php:d/m/Y H:i:s timezone: Asia/Ho_Chi_Minh

Timestamp: 32630400

To date time string (Yii): 13/01/1971 23:00:00

To date string (Yii): 13/01/1971

Date (PHP): 14-01-1971 00:00:00

But if i set year = 1976, both machines show "14/01/1971 00:00:00".

Do I have to configure anything else to make it work on my server?

(Sorry for my bad english)