2012-10-19 49 views
2

我有問題,我使用的PHP腳本,也有一些是錯誤的,當我添加日期到我的數據庫......PHP日期重新安排到MySQL我需要使用爆炸?

我怎樣才能修復/重新安排這一日期

date("Oct 18, 2012 05:06:42");

我數據庫只接受2012-10-19 05:06:42

,但我接受不同形式,這是Oct 18, 2012 05:06:42

這裏是我的示例代碼

$cocod = date('Oct 18, 2012 05:06:42');//'Oct 18, 2012 2012-10-18'; 
$get = strtotime(date("Y-m-d H:m:s", strtotime($cocod)) . " +30 day"); 
$setex = date('Y-m-d H:m:s', $get); 
echo $setex; 

謝謝...

回答

1

呦ü可以使用DateTime類

$timestamp = DateTime::createFromFormat('M d, Y H:i:s', 'Oct 18, 2012 05:06:42')->getTimestamp(); 

在您的例子您的格式化的日期轉換回時間戳以上我可以看到你,即使想增加30天。你可以是這樣做的:

$date = DateTime::createFromFormat('M d, Y H:i:s', 'Oct 18, 2012 05:06:42'); 
$date->add(new DateInterval('P30D')); 

如果你現在想重新格式化您的日期,請執行下列操作:

$date->format('Y-m-d H:m:s'); 

進一步的閱讀需要看看DateTime類上php.net

+0

+1爲OOP-ness :)略微矯枉過正,但教育 – CodeAngry

3

如何:

$cocod = 'Oct 18, 2012 05:06:42'; // original date 

$get = date("Y-m-d H:i:s", strtotime($cocod . " +30 days")); 

echo $get; 

輸出

2012年11月17日5時06分42秒

+0

謝謝先生澄清我的代碼... – Butternut

+0

+!爲簡單起見:) – CodeAngry

0

長手的方式...

$d0 = explode(",", $date); 

$d1 = explode(" ", $d0[0]); 

$d2 = explode(" ", trim($d0[1])); 


$year = $d2[0]; 
$month = monthToInt($d1[0]); 
$day = $d1[1]; 
$time = $d2[1]; 


$mysql_date = $year . "-" . $month . "-" . $day . "" . $time; 

monthToInt本功能離子只是一個需要「Oct」並將其轉換爲10。你可以很容易地用12 if statementsswitch statement來寫這個,或者在互聯網上找到一個預製的。