2016-03-07 12 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'附近的''''。 –