首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php实现自动开启/关闭夜间模式

php实现自动开启/关闭夜间模式

原创
作者头像
MoLeft
发布2022-06-17 08:53:29
8970
发布2022-06-17 08:53:29
举报
文章被收录于专栏:用砖头敲代码用砖头敲代码

首先,想要自动开启/关闭夜间模式我们需要知道现在的太阳的状态(日出/日落),所以说先要获取今日的日出和日落时间。在网上找了一大圈也没找到可以对接的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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档