【发布时间】:2012-05-28 03:15:42
【问题描述】:
我有一个 PHP 论坛,它的日期类似于表单
dd/mm/yyyy hh:mm:ss。但是,我需要将它作为 DATETIME 以yyyy-mm-dd hh:mm:ss 的格式插入到 SQL 中。如何转换这些数据?
【问题讨论】:
-
这已经被问了一百万次了。快速搜索即可找到您的答案。
标签: php mysqli sqldatatypes type-conversion
我有一个 PHP 论坛,它的日期类似于表单
dd/mm/yyyy hh:mm:ss。但是,我需要将它作为 DATETIME 以yyyy-mm-dd hh:mm:ss 的格式插入到 SQL 中。如何转换这些数据?
【问题讨论】:
标签: php mysqli sqldatatypes type-conversion
您的日期时间格式错误:dd/mm/yyyy hh:mm:ss。可能你的意思是d/m/Y H:i:s
如果您有 5.3+ 版本,则可以安全地将日期时间转换为另一种格式。这是一个例子:
$timestamp = '31/05/2001 12:22:56';
$timestamp = DateTime::createFromFormat('d/m/Y H:i:s', $timestamp);
echo $timestamp->format('Y-m-d H:i:s');
或者如果你喜欢更程序化的方式:
$timestamp = '31/05/2001 12:22:56';
$timestamp = date_create_from_format('d/m/Y H:i:s', $timestamp);
echo date_format($timestamp, 'Y-m-d H:i:s');
注意以前的建议。有些是完全错误的,有些可能会导致错误。
【讨论】:
您可以使用 strtotime 和 date 来修改格式。
$new_date = date( "Y-m-d H:i:s", strtotime( $old_date ) );
它的作用是获取您的旧日期 (dd/mm/yyyy hh:mm:ss),将其转换为 unix 时间戳,然后可以与 php date 函数一起使用将日期格式化为所需的格式。
【讨论】:
Y-m-d H:i:s 我的格式是为了说明它会返回什么。我的错。在这里查看日期函数 link 中的格式设置,所以它会是:$finalc= date("Y-m-d H:i:s", strtotime($_POST['finalDate']));
几种可能的方法中的两种:
$mysqldate = date( 'Y-m-d H:i:s', $phpdate );
$query = "UPDATE table SET datetimefield = FROM_UNIXTIME($phpdate) ...";
【讨论】:
如果您可以从上述格式中获得日期时间,那么您只需要使用以下功能。
function localToMysql($dateTime){
$date_chunks = explode('/', $dateTime);
$time_chunks = explode(' ', $date_chunks[2]);
$final_format = $time_chunks[0] . "-" . $date_chunks[1] . "-" . $date_chunks[0] . " " . $time_chunks[1];
返回 $final_format; }
【讨论】: