-1

我正在从数据库中的表中获取这个日期,就像这种格式

Sunday 16th of January 2011 06:55:41 PM

我想把它转换成这种格式

11-05-2012

如何使用日期功能或任何功能做到这一点

当我使用日期功能时

 <td><?php echo date('d-m-Y', $v['v_created']); ?></td>

我收到错误消息

 'Severity: Warning

Message: date() expects parameter 2 to be long, string given'
4

5 回答 5

2

这对我有用(刚刚在本地网络服务器上测试过)

<?php

date_default_timezone_set ('Europe/Rome');

$date = "Sunday 16th of January 2011 06:55:41 PM";

//.Strip "of" messing with php strtotime
$date = str_replace('of', '', $date);

$sql_friendly_date = date('y-m-d H:i', strtotime($date));

echo $sql_friendly_date;

?>

您可以根据自己的喜好更改日期函数的第一个参数的格式:http: //it2.php.net/manual/en/function.date.php

于 2012-08-13T09:29:49.610 回答
1

您具有以下格式:

 Sunday 16th of January 2011 06:55:41 PM

这是基于字符串的格式,因此日期信息或多或少以人类可读的格式编码。幸运的是英语。让我们看看,这是由空格分隔的多个事物:

 Sunday   - Weekdayname
 16th     - Date of Month, numeric, st/nd/th form
 of       - The string "of".
 January  - Monthname 
 2011     - Year, 4 digits
 06:55:41 - Hour 2 digits 12 hours; Colon; Minute 2 digits; Colon; Seconds 2 digits
 PM       - AM/PM

因此,您可以按空间分隔每个节点,然后分析数据。您只需要所有月份名称和sscanf函数,因为您只需要月份、月份和年份:

$input = 'Sunday 16th of January 2011 06:55:41 PM';
$r = sscanf($input, "%*s %d%*s of %s %d", $day, $monthname, $year);

这已经为您提供了以下变量:

$monthname - string(7) "January"
$day       - int(16)
$year      - int(2011)

所以剩下要做的就是将月份名称转换为一个数字,这可以通过映射(在 PHP 中以数组的形式)和一些格式化的输出来完成:

$monthnames = array(
    'January' => 1,
    # ...
);

printf("%02d-%02d-%04d", $day, $monthnames[$monthname], $year);

因此,无论哪个问题,只要输入的格式有点一致,您就可以将其分开,处理获得的数据并根据您的需要进行输出。这就是它的工作原理。

于 2012-08-13T09:53:01.933 回答
0

试试这个。一直为我工作

$date = Sunday 16th of January 2011 06:55:41 PM

$new_date = date('d-M-Y', strtotime($date));

echo $new_date;
于 2012-08-13T09:23:18.397 回答
0

您使用的格式Sunday 16th of January 2011 06:55:41 PM是错误的格式。从您在数据库中插入的表格中,此日期的日期(Ymd)应该比插入数据库中的日期值(例如:- 11-05-2012)。你可以获取它并获得你想要的格式。

于 2012-08-13T09:23:52.513 回答
0
<?php

$old_date = date('l, F d y h:i:s');         // returns Saturday, January 30 10 02:06:34

$new_date = date('d-M-Y', strtotime($old_date));

echo $new_date
?>




     more details about date plz visit this url

    http://www.php.net/manual/en/datetime.createfromformat.php
于 2012-08-13T09:33:16.397 回答