我有一个 PHP 论坛,它采用格式中的日期
dd/mm/yyyy hh:mm:ss
。但是,我需要将它作为 DATETIME 插入到 SQL 中,格式为yyyy-mm-dd hh:mm:ss
. 如何转换这些数据?
问问题
35794 次
4 回答
19
您的日期时间格式错误: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');
小心以前的建议。有些是完全错误的,有些可能会导致错误。
于 2012-05-21T16:03:01.690 回答
3
您可以使用 strtotime 和 date 来修改格式。
$new_date = date( "Y-m-d H:i:s", strtotime( $old_date ) );
这样做是获取您的旧日期 ( dd/mm/yyyy hh:mm:ss
),将其转换为 unix 时间戳,然后可以与 php date 函数一起使用将日期格式化为所需的格式。
于 2012-05-21T15:46:44.323 回答
2
几种可能的方法中的两种:
- 在代码中转换,然后将转换后的值传递给mysql:
$mysqldate = date( 'Y-m-d H:i:s', $phpdate );
- 让 mysql 使用它的内置函数来完成这项工作:
$query = "UPDATE table SET datetimefield = FROM_UNIXTIME($phpdate) ...";
于 2012-05-21T15:46:44.040 回答
1
如果您可以从上述格式中获得日期时间,那么您只需要使用以下功能。
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;}
于 2012-05-21T15:50:40.027 回答