PHP正则匹配日期和时间(时间戳转换)的实例代码
深入PHP日期时间的正则表达式匹配及时间戳转换
对于希望在PHP中进行日期时间匹配及时间戳转换的朋友们,这是一篇值得参考的文章。我们将通过一个实例来展示如何实现这一过程。
让我们从一个简单的正则表达式开始,匹配日期格式。这个正则表达式可以匹配形如“YYYY-MM-DD”或“YYYY/MM/DD”的日期。
```php
$str = "嘿嘿2010/07/08哈哈1999/12/31";
// 仅匹配日期
preg_match_all("/d{4}/d{2}/d{2}/", $str, $arr);
preg_match_all("/d{4}-d{2}-d{2}/", $str, $arr2); // 针对'-'分隔的日期
```
接下来,我们将添加时间的匹配,以涵盖形如“YYYY-MM-DD HH:MM:SS”的日期时间格式。我们也会处理没有秒数的情况。以下是对应的正则表达式:
```php
// 匹配日期与时间
preg_match_all("/d{4}/d{2}/d{2}s(d{2}:){2}d{2}/", $str, $arr3); // 对于'/'分隔的日期时间格式
preg_match_all("/d{4}-d{2}-d{2}(s(d{2}:){2}d{2})?/", $str2, $arr4); // 对于'-'分隔的日期时间格式,并处理没有秒数的情况
```
请注意上面的正则表达式中的问号“?”,它表示前面的部分是可选的,即可以只匹配日期部分而不必匹配时间部分。接下来,对于匹配成功的日期时间格式,我们可以进行时间戳转换。时间戳是表示从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。在PHP中,我们可以使用`strtotime`函数进行转换。以下是示例代码:
```php
$time = "2016-12-14 23:59:59"; // 一个有效的日期时间字符串
$patten = "/^\d{4}[\-](0?[1-9]|1[012])[\-](0?[1-9]|[12][0-9]|3[01])(\s+(0?[0-9]|[1-2][0-3])\:(0?[0-9]|[1-5][0-9])\:(0?[0-9]|[1-5][0-9]))?$/"; // 匹配上面定义的日期时间格式的正则表达式
if (preg_match($patten, $time)) {
echo $timestro = strtotime($time); // 输出时间戳
} else {
echo "error"; // 如果不匹配,输出错误提示
}
```
在这个例子中,我们首先定义了一个有效的日期时间字符串`$time`,然后使用正则表达式`$patten`进行匹配。如果匹配成功,则通过`strtotime`函数将其转换为时间戳并输出。否则,输出错误提示。通过这个例子,我们可以深入理解如何在PHP中使用正则表达式进行日期时间的匹配及时间戳转换。希望这个例子能帮助到大家。更多关于PHP日期时间的内容,可以参考狼蚁SEO的其他文章。
编程语言
- PHP正则匹配日期和时间(时间戳转换)的实例代码
- 用Laravel轻松处理千万级数据的方法实现
- Asp.Net套用母版页后元素ID不一致(个人总结)
- js实现网页防止被iframe框架嵌套及几种location.hr
- js绑定事件和解绑事件
- Yii2框架中日志的使用方法分析
- 解析使用ThinkPHP应该掌握的调试手段
- SQL Server SA权限总结经典技术
- JavaScript实现自动对页面上敏感词进行屏蔽的方法
- PHP中key和current,next的联合运用实例分析
- ES6 javascript中class类的get与set用法实例分析
- 利用javascript实现的三种图片放大镜效果实例(附
- JS使用正则表达式实现关键字替换加粗功能示例
- js+php实现静态页面实时调用用户登陆状态的方法
- thinkphp5上传图片及生成缩略图公共方法(分享)
- json的键名为数字时的调用方式(示例代码)