PHP:将日期字符串转换为Unix时间戳
2022-08-30 18:16:48
给定以下字符串:
- 01/01/11
- 1/1/11
- 1/1/2011
- 01/1/2011
- 1-1-2011
- 等
如何将这些转换为Unix时间戳。请注意,在大多数情况下,这将采用各种分隔符的格式。dd mm yyyy
给定以下字符串:
如何将这些转换为Unix时间戳。请注意,在大多数情况下,这将采用各种分隔符的格式。dd mm yyyy
看看 strtotime
、strptime
或 DateTime
类。
strtotime
例:
$timestamp = strtotime('1/1/2011');
每个函数都有它的警告。例如,文档指出:strtotime
通过查看各个组件之间的分隔符来消除m / d / y格式的日期的歧义:如果分隔符是斜杠(/),则假定为美国m / d / y;而如果分隔符是短划线 (-) 或点 (.),则假定为欧洲 d-m-y 格式。
您还可以使用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']);
}
$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;