首先,想要自动开启/关闭夜间模式我们需要知道现在的太阳的状态(日出/日落),所以说先要获取今日的日出和日落时间。在网上找了一大圈也没找到可以对接的api,所以说只能靠自己来写了。
我这里的演示是从世界时间网来获取的,当然他没有api,所以说我的思路是利用curl函数来获取源码,然后正则表达式匹配出我们想要的东西。
<?php
//获取源代码
$result = get_curl('https://mtime.guowaitianqi.com/rcrl-5141-'.date('Ymd').'.html');
//获取日出时间
preg_match_all("/\<span class=\"bf11\"\>日出时间:(.*)\<\/span\>/",$result,$sunup);
$sunup = date('Y-m-d').' '.trim($sunup[1][0]);
//获取日落时间
preg_match_all("/\<span class=\"bf11\"\>日落时间:(.*)\<\/span\>/",$result,$sundown);
$sundown = date('Y-m-d').' '.trim($sundown[1][0]);
好了,利用正则表达式我们已经将想要的日出和日落的时间都匹配出来了,接下来可以进行判断了。
//判断是否开启夜间模式
$time = time();
if($time<strtotime($sunup) || $time>strtotime($sundown)){
//开启夜间模式
}else{
//关闭夜间模式
}
原理也很简单,如果当前时间小于日出时间,或者当前时间大于日落时间就开启夜间模式,很好理解吧。具体代码自行实现吧,这里获取源码的时间我是用date函数拼接出来的,所以说想要获取下一天或者上一天的,只要改一下date函数就可以了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。