这个验证规则如何写?
phpcn_u16587
phpcn_u16587 2017-09-09 10:00:48
[PHP讨论组]

假设要验证日期字段是否在某个日期至今天之间,用什么方式写验证规则最简单?

例:$rule = [

    'birthday' => 'after:1940-1-1|before:今天',

];

规则中的“今天”该如取得并插入到规则中?

phpcn_u16587
phpcn_u16587

全部回复(2)
phpcn_u16587

我问的目的是指能不能用自定义变量或函数插入到“今天”这个位置?

按键盘手指磨破皮
mktime(0,0,0,date('m'),date('d'),date('Y')); //今日凌晨
mktime(0,0,0,date('m'),date('d')-1,date('Y')); //昨日凌晨
mktime(0,0,0,date('m'),date('d')+1,date('Y')); //明日凌晨
前面3个从左到右分别代表小时,分钟,秒
mktime(12,9,10,date('m'),date('d'),date('Y')); //今日的12:09:10
上面获取到的都是时间戳格式 可以通过date转换为日期格式
date("Y-m-d H:i:s",mktime(12,9,10,date('m'),date('d'),date('Y')));
当然也可以日期转时间戳
strtotime("2011-2-18 08:15:42"); //时间转时间戳
那么知道以上时间的获取方式,再根据你的需求来进行运算,用时间戳来运算就比较简单了
昨日的时间戳肯定小于今日的时间戳
明日的时间戳肯定大于今日的时间戳
比如你要判断2000-1-1 是否再1940-1-1 和今日之间 可以这样写
$a = strtotime("2000-1-1");
$b = time();//当前的时间戳 你要指定时间也可以用上面的一些函数
$m = strtotime("1940-1-1");
if($a > $m && $a < $b)
{
    echo '在1940-今日之间';
}else{
    echo '不是指定的时间段';
}
望采纳


热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号