在PHP中转换日期格式

时间:2013-04-27 19:41:43

标签: php mysql sql

我从我的php函数中获取了一个类似Mon Apr 22 2013 12:16:00 GMT+0530(印度标准时间)的日期格式javascript。

我想以“2013-04-22 12:16:00”格式将其存储到我的数据库表中。

任何人都可以帮我转换这个日期类型。

我试过了:

date("Y-m-d H:i:s",$startDate);

但它正在给出错误

  

date()期望参数2为长字符串

3 个答案:

答案 0 :(得分:5)

使用strtotime()和date():

$originalDate = "Mon Apr 22 2013 12:16:00 GMT+0530 (India Standard Time)" ;
$newDate = date("Y-m-d H:i:s", strtotime($originalDate));

(请参阅PHP网站上的strtotimedate文档。

或使用DateTime:

<?php
$source = "Mon Apr 22 2013 12:16:00 GMT+0530 (India Standard Time)";
$date = new DateTime($source);
echo $date->format("Y-m-d H:i:s"); // 22 2013 12:16:00
echo $date->format("Y-m-d H:i:s"); // 22 2013 12:16:00
?>

DEMO

答案 1 :(得分:2)

尝试使用strtotime将时间戳转换为unix格式,以便在date()函数中使用它:

date("Y-m-d H:i:s",strtotime($startDate));

您也可以尝试使用(通常包含的)DateTime类。特别是,请查看DateTime::createFromFormat。它可以帮助您解决日期字符串中的歧义(strtotime()有时会失败或错误解析日期字符串)。 DateTime::createFromFormat允许您专门指定日期字符串的格式,因此不会产生歧义。

答案 2 :(得分:0)

首先,您需要将其另存为时间戳,

$startDate = strtotime($javascript_value);    
$result =  date("Y-m-d H:i:s",$startDate);