2017-06-15 74 views
1

我做了這個功能檢查是否是一個日期時間PHP

function checkNullToInsert($data){ 

     if($data){ 
      if($data->format('Y-m-d H:i:s')){ 
       return "'".$data->format('Y-m-d H:i:s')."'"; 
      }else{ 
       return "'".$data."'"; 
     } 
     else { 
      return 'NULL'; 
     } 
    } 

,也未能對

如果($數據 - >格式( 'YMD H:I:S')`

,但我可以看到錯誤(是不是我的服務器)。
什麼改變了我必須做的,使該功能的工作。如果它的一個日期,它應該返回的日期,如果沒有一個日期時間返回數據,如果它的null返回一個字符串'n '值'

+0

是'$ data' DateTme'的'的實例,或者是一些其他類?而且既然你說你可以看到錯誤,你真的需要把它包含在問題中! –

+0

'$ data'它的一個sql請求的字段可以是一個日期時間,int,字符串.. –

+0

你也錯過了在內部if語句中關閉'}' –

回答

0

您當前的代碼嘗試使用任何驗證爲truthy的值作爲DateTime實例。下面是關於什麼樣的價值觀被認爲是真/假手冊:http://php.net/manual/en/types.comparisons.php

首先,你需要檢查變量DateTime一個實例。我們可以做到這一點與instanceof操作:

function checkNullToInsert($data){ 
    if ($data){ 
     // Check if the variable is an instance of DateTime. 
     if ($data instanceof DateTime) { 
      return "'".$data->format('Y-m-d H:i:s')."'"; 
     } else { 
      return "'".$data."'"; 
     } // You were also missing this closing brace 
    } 
    else { 
     return 'NULL'; 
    } 
} 

下面是instanceof的文檔:http://php.net/manual/en/internals2.opcodes.instanceof.php

相關問題