前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php实现自动开启/关闭夜间模式

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

作者头像
MoLeft
发布2022-08-30 11:23:10
8060
发布2022-08-30 11:23:10
举报
文章被收录于专栏:用砖头敲代码用砖头敲代码

说明

纯属没事写着玩的,别上纲上线。判断日出日落都是按照北京时间来的,不会按照ip地址精确到省份。我是写代码的,不是气象台的!

实现

首先,想要自动开启/关闭夜间模式我们需要知道现在的太阳的状态(日出/日落),所以说先要获取今日的日出和日落时间。在网上找了一大圈也没找到可以对接的api,所以说只能靠自己来写了。 我这里的演示是从世界时间网来获取的,当然他没有api,所以说我的思路是利用curl函数来获取源码,然后正则表达式匹配出我们想要的东西。

代码语言:javascript
复制
<?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]);

好了,利用正则表达式我们已经将想要的日出和日落的时间都匹配出来了,接下来可以进行判断了。

代码语言:javascript
复制
//判断是否开启夜间模式
$time = time();
if($time<strtotime($sunup) || $time>strtotime($sundown)){
    //开启夜间模式
}else{
    //关闭夜间模式
}

原理也很简单,如果当前时间小于日出时间,或者当前时间大于日落时间就开启夜间模式,很好理解吧。具体代码自行实现吧,这里获取源码的时间我是用date函数拼接出来的,所以说想要获取下一天或者上一天的,只要改一下date函数就可以了。

后记

我也不知道为什么要写这个,真的就是写着玩的,没有那么多的功能,就只是获取北京时间的日出日落时间,我精确不到每个省,别杠了,我都服了。

如无特殊说明《php实现自动开启/关闭夜间模式》为博主MoLeft原创,转载请注明原文链接为:https://moleft.cn/post-49.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

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