2

我有问题,我正在使用 PHP 脚本,当我将日期添加到我的数据库时出现问题...

我怎样才能修复/重新安排这个日期

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;

谢谢你...

4

3 回答 3

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 05:06:42

于 2012-10-19T11:28:14.160 回答
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');

如需进一步阅读,请查看php.net上的DateTime类

于 2012-10-19T11:34:46.240 回答
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; 

The monthToInt function is just one that takes "Oct" and turns it to 10. You can write that yourself quite easily with 12 if statements or a switch statement, or find one pre-made on the internet.

于 2012-10-19T11:36:22.417 回答