Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中使用正则表达式将日期/时间字符串更改为时间戳_Php_Regex_Timestamp - Fatal编程技术网

在PHP中使用正则表达式将日期/时间字符串更改为时间戳

在PHP中使用正则表达式将日期/时间字符串更改为时间戳,php,regex,timestamp,Php,Regex,Timestamp,我正在努力使用正则表达式将日期/时间字符串更改为时间戳。字符串的格式为'd/m/Y\a\t g:ia'(例如2012年6月15日下午6:00) 我需要这样做,以确保日期不在过去 我可以使用下面的代码来完成日期部分(只需'd/m/Y'),但其余的部分我都在苦苦挣扎。谢谢 $expires = preg_replace("/(\d{2})\/(\d{2})\/(\d{4})/", "\\3-\\2-\\1" , $poll['poll_expired']); 谢谢。你为什么不能这样做呢 $date

我正在努力使用正则表达式将日期/时间字符串更改为时间戳。字符串的格式为
'd/m/Y\a\t g:ia'
(例如2012年6月15日下午6:00)

我需要这样做,以确保日期不在过去

我可以使用下面的代码来完成日期部分(只需
'd/m/Y'
),但其余的部分我都在苦苦挣扎。谢谢

$expires = preg_replace("/(\d{2})\/(\d{2})\/(\d{4})/", "\\3-\\2-\\1" , $poll['poll_expired']);

谢谢。

你为什么不能这样做呢

$date = DateTime::createFromFormat('d/m/Y \a\t g:ia', ' 15/06/2012 at 6:00pm');
$expires = $date->format('U');

(没有经过测试,但你已经知道了。)

为什么你不能做这样的事情呢

$date = DateTime::createFromFormat('d/m/Y \a\t g:ia', ' 15/06/2012 at 6:00pm');
$expires = $date->format('U');

(未经测试,但您已经知道了。)

为什么要使用正则表达式?为什么不构造一个DateTime对象并使用
getTimestamp
?将来也可以,但我不能使用我不知道存在的东西。我一直认为正则表达式是解决这个问题的方法。谢谢。你为什么用正则表达式?为什么不构造一个DateTime对象并使用
getTimestamp
?将来也可以,但我不能使用我不知道存在的东西。我一直认为正则表达式是解决这个问题的方法。谢谢。他可以而且应该:)不知道,为什么有些人试图用regex解决所有问题…+1正是我的评论所暗示的。。。(注意)非常感谢@Josh-我不知道这个方法,但它比regex简单得多。除了用保存日期的变量替换日期之外,你的例子工作得很好。他可以而且应该:)不知道,为什么有些人试图用regex解决所有问题…+1正是我的评论所建议的。。。(注意)非常感谢@Josh-我不知道这个方法,但它比regex简单得多。除了用保存日期的变量替换日期之外,您的示例非常有效。