PHP:将日期字符串转换为Unix时间戳

Sta*_*bie 19 php

给出以下字符串:

  • 11年1月1日
  • 1/1/11
  • 1/1/2011
  • 2011年1月1日
  • 2011年1月1日
  • 等等

如何将这些转换为Unix时间戳.请注意,在大多数情况下,这将dd mm yyyy采用各种分隔符的格式.

Fra*_*nes 35

strtotime,strptime或者DateTime上课.

strtotime 例:

$timestamp = strtotime('1/1/2011');
Run Code Online (Sandbox Code Playgroud)

每个功能都有它的警告.例如,strtotime状态文档:

通过查看各个组件之间的分隔符来消除m/d/y或dmy格式的日期:如果分隔符是斜杠(/),则假设为美国m/d/y; 而如果分隔符是破折号( - )或点(.),则假定为欧洲dmy格式.

您还可以使用preg_match捕获所有3个部分并使用创建自己的时间戳mktime.

preg_match 例:

if ( preg_match('/^(?P<day>\d+)[-\/](?P<month>\d+)[-\/](?P<year>\d+)$/', '1/1/2011', $matches) )
{
  $timestamp = mktime(0, 0, 0, ( $matches['month'] - 1 ), $matches['day'], $matches['year']);
}
Run Code Online (Sandbox Code Playgroud)


小智 5

$to='23.1.2014-18:16:35'
list($part1,$part2) = explode('-', $to);
list($day, $month, $year) = explode('.', $part1);
list($hours, $minutes,$seconds) = explode(':', $part2);
$timeto =  mktime($hours, $minutes, $seconds, $month, $day, $year);
echo $timeto;
Run Code Online (Sandbox Code Playgroud)