TypechoJoeTheme

WPBKJ博客

wpbkj

愿你一生努力,一生被爱!
PHP

【开源】摸鱼办提醒_PHP版

2022-07-07
/
241 阅读
/
推送成功,剩余次数2995
07/07

简述

摸鱼办是一个具有娱乐调侃性质的虚拟机构。摸鱼办提醒则提醒各位摸鱼人各个假期何时到来,为摸鱼人种下希望(狗头)。项目整体由PHP构建。
项目基于GPL2.0开源协议发布

最终效果

在线预览

摸鱼办

开源仓库

GITEE

实现

农历支持(lunar.php)

已将农历支持进行删减,仅保留农历转公历功能

将文本类型日期转换为时间戳方法

/** 将文本类型日期转换为时间戳方法 */
function changeDate($date){
    list($year,$month,$day) = explode('-',$date);
    return mktime(0,0,0,$month,$day,$year);
}

计算两日期间隔时间(Y-m-d格式)

需用到changeDate()函数

/** 计算两日期间隔时间(Y-m-d格式) */
function countDay($dateBegin,$dateEnd){
    $res = (changeDate($dateEnd) - changeDate($dateBegin)) / (3600*24);
    return $res;
}

判断今年该日期是否已过并计算与当前相差时间(农历)

需用到changeDate()及countDay()及农历支持

/** 判断今年该日期是否已过并计算与当前相差时间(农历) */
function lunarDayJudge($month,$day){
    global $lunar;
    global $nowDate;
    global $nowYear;
    global $nextYear;
    $date = $lunar->convertLunarToSolar($nowYear,$month,$day);
    $date = $date[0].'-'.$date[1].'-'.$date[2];
    if(changeDate($nowDate) <= changeDate($date)){
        return countDay($nowDate,$date);
    }else{
        $date = $lunar->convertLunarToSolar($nextYear,$month,$day);
        $date = $date[0].'-'.$date[1].'-'.$date[2];
        return countDay($nowDate,$date);
    }
}

判断今年该日期是否已过并计算与当前相差时间(公历)

需用到changeDate()及countDay()及农历支持

/** 判断今年该日期是否已过并计算与当前相差时间(公历) */
function dayJudge($month,$day){
    global $nowDate;
    global $nowYear;
    global $nextYear;
    $date = $nowYear.'-'.$month.'-'.$day;
    if(changeDate($nowDate) <= changeDate($date)){
        return countDay($nowDate,$date);
    }else{
        $date = $nextYear.'-'.$month.'-'.$day;
        return countDay($nowDate,$date);
    }
}

具体实现

定义数组$vacDate储存各假期剩余天数
定义数组$title储存各假期名称

/** 周末 */
if(6-$nowWeek <= 0){
    $vacDate['WEEKEND'] = 0;
}else{
    $vacDate['WEEKEND'] = 6-$nowWeek;
}

$title['WEEKEND'] = '周末';

/** 中秋节 */
$vacDate['MAF'] = lunarDayJudge(8,15);
$title['MAF'] = '中秋节';

/** 国庆节 */
$vacDate['ND'] = dayJudge(10,1);
$title['ND'] = '国庆节';

/** 元旦 */
$vacDate['NYD'] = dayJudge(1,1);
$title['NYD'] = '元旦';

/** 农历过年 */
$vacDate['LNY'] = lunarDayJudge(1,1);
$title['LNY'] = '过年';

/** 清明节 */
$vacDate['TSD'] = lunarDayJudge(4,5);
$title['TSD'] = '清明节';

/** 劳动节 */
$vacDate['ILD'] = dayJudge(5,1);
$title['ILD'] = '劳动节';

/** 端午节 */
$vacDate['DBF'] = lunarDayJudge(5,5);
$title['DBF'] = '端午节';

其他就是html
在html中使用foreach循环取出两数组中数据

<p>
    <?php
        foreach ($vacDate as $key => $value){
    ?>
  距离 <?php echo $title["{$key}"];?> 放假还有 <?php echo $value;?> 天<br>
    <?php }?>
</p>

再添加亿点小细节,详细内容见开源仓库

摸鱼办摸鱼办提醒摸鱼办API
朗读
赞 · 3
赞赏
感谢您的支持,我会继续努力哒!

三合一收款

下面三种方式都支持哦

微信
QQ
支付宝
打开支付宝/微信/QQ扫一扫,即可进行扫码打赏哦
版权属于:

WPBKJ博客

本文链接:

https://www.wpbkj.com/archives/moyu.html(转载时请注明本文出处及文章链接)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

标签云

Copyright© 2018-2021WPBKJ网络工作室
ALL RIGHTS RESERVED.
备案信息:豫ICP备2021004069号-1

豫公网安备 41170202000381号

MySSL 安全签章
知识共享许可协议
本站所有作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。