2017-06-12 34 views
0

我想在數據庫中設置一個空的日期。用下面的代碼我定義了一個空的日期對象。用php生成空的時間對象

$date = new \DateTime('0000-00-00'); 

我認爲這段代碼會生成和時間對象,其中[日期]包含全零。但它會在下面生成無效的時間對象。

DateTime Object 
(
    [date] => -0001-11-30 00:00:00.000000 
    [timezone_type] => 3 
    [timezone] => UTC 
) 

這是服務器設置,因爲它可以在我的開發服務器上工作嗎?

+1

定義您的數據庫字段具有適當的日期類型,並且不允許null(允許null作爲false而不是null)值。在這種情況下,db只會在日期的情況下自動將您的文件設置爲「0000-00-00」。這對日期和時間數據也是一樣的。 – webDev

回答

1

因爲ISO 8601禁止你這樣做,所以不可能用PHP中的全零生成日期時間對象。

如果要使數據庫表中的日期/日期時間字段可選,則應該使用NULL作爲默認值,而不是使用NOT NULL並設置0000-00-00 00:00:00。 「

」無效的DATE,DATETIME或TIMESTAMP值將轉換爲適當類型('0000-00-00'或'0000-00-00 00:00:00')的「零」值。「

請注意在這裏使用單詞「無效」。