如何使用date()和strtotime()从字符串中获取日期?

时间:2017-01-12 05:56:25

标签: php date datetime

我在日期之后接受输入:12.01.2017 2:25 pm

但是当我在php函数 strtotime 上面超过datetime时,它并没有以24小时格式返回确切的日期时间。

这是我的脚本:

  $sdate="12.01.2017 2:25 pm";
  date("d.m.Y H:m", strtotime($sdate))

它总是 12-jan-2017 14:01:00

但准确的输出应该是: 12-jan-2017 14:25:00

请告诉我如何获得准确的约会时间。

由于

4 个答案:

答案 0 :(得分:1)

嘿,你的dateformat字符串有问题: 你的剧本应该 H:i 而不是 H:m

请更正日期并根据您的期望对其进行格式化:

date("d-M-Y H:i", strtotime($sdate));

答案 1 :(得分:0)

<?php 
$sdate="12.01.2017 2:25 pm";
echo  date("d-M-Y H:i", strtotime($sdate));
?>

Output

答案 2 :(得分:0)

您应该在日期中使用 i 而不是 m : 像这样

echo $sdate="12.01.2017 2:25 pm";
echo date("d.m.Y H:i", strtotime($sdate));

答案 3 :(得分:0)

已经有使用strtotime()的答案。我想告诉你DateTime课程。我发现它非常有用并且更好看。这对大多数人来说并不重要,但仍然如此。

// Date string
$dateString = '12.01.2017 11:03 am';

// Create date object from string
$oDate = DateTime::createFromFormat('d.m.Y h:i a', $dateString);

// Output the date
echo $oDate->format('d.m.Y h:i a');

// Or some other format
echo $oDate->format('Y-m-d H:i:s');

请注意date()DateTime接受相同的日期参数。您的字符串表明您需要以下参数。

d - Day of the month, 2 digits with leading zeros
m - Numeric representation of a month, with leading zeros
Y - A full numeric representation of a year, 4 digits
h - 12-hour format of an hour with leading zeros
i - Minutes with leading zeros
a - Lowercase Ante meridiem and Post meridiem

更多信息

有关dateDateTimestrtotime()以及您可以使用的所有参数的详情,请访问:

date()和DateTime手册列出了所有可能的参数