2016-03-07 16 views
1

我想轉換字符串。我從用戶接收到的數據Php轉換接收字符串從用戶到日期

$jsonObject = $_GET["UserDetails"]; 
    $obj = json_decode($jsonObject); 
    $timestamp = strtotime('$obj->BirthDay'); 
    $BirthDay = date('m-d-Y',$timestamp); 

這裏$obj是一個JSON對象,它包含以下數據:

UserDetails={"Sex":"Male","Email":"[email protected]","Username":"SumanthJois","Password":"iluvcoding","BirthDay":"12-March-1996"} 

寄託都工作正常,但BirthDay按需要不工作,可以說這是值爲19-March-1996,並且它正在更新爲00-00-00,這對所有值都是相同的。有人能告訴我我要去哪裏嗎?

謝謝!

+0

列的類型是日期 – Jois

回答

1

您需要更改日期格式每MYSQL標準,如:

$BirthDay = date('m-d-Y',$timestamp); 

變化與:

$BirthDay = date('Y-m-d',$timestamp); 

DATE format應該「Y-M-d」

UPDATE:

您還需要修改strtotime()功能:

$timestamp = strtotime($obj->BirthDay); // don't use quotes. 
$BirthDay = date('m-d-Y',$timestamp); 
+0

Thankyou它的工作,但現在,而不是00-00-00它是1970-1-1的每個價值。現在有什麼不對? – Jois

+0

@Jois:答案更新了,不要在strtotime() – devpro

+0

Thankyou中使用引號。它的工作。如果你不介意,你能解釋一下strtotime()是如何工作的嗎? – Jois

0

默認date格式爲yyyy-mm-dd。和您使用的格式編號爲mm-dd-yyyy。嘗試 -

$BirthDay = date('Y-m-d',$timestamp); 
+0

三江源它的工作,但現在,而不是00-00-00這是1970-每個值1-1。現在有什麼不對? – Jois

+0

由於'$ obj-> BirthDay'附近的''''。 –