php创建倒计时工具,让你保持专注

工作过程中,时常会被各种杂事打乱,有一个倒计时工具可以帮助自己在一定时间内集中注意力。网上虽然有现成的工具,但用着不太顺手,要么功能太简单,要么太复杂,过于占用资源,且缺乏自定义。

作为爱折腾的程序员,自己用PHP写了一个倒计时工具。

效果显示

image.png

每秒钟更新文件内容,看起来就是倒计时的效果

image.png

时间结束后会激活windows弹出窗口:

image.png

实现原理

php程序在后台静默运行,每秒钟执行一次循环并写入到文件,实现倒计时效果。当时间结束后,调用bat文件弹出窗口

php代码:

<?php
$task = '写文章'; // 任务名称
$duration = 25; // 设置时长
$rest = 5; // 休息时间
$now = time();
$batName = 'clock.bat'; // 调用的bat文件
$relatePath = './' . $batName;
$recordPath = './record_time.md'; // 文本倒计时
$absolutePath = str_replace('php', 'bat', __FILE__);
$seconds = $duration * 60;
file_put_contents($recordPath, '');
for ($i=$seconds; $i > 0; $i--) {
    $hour = floor($i / 3600) ? floor($i / 3600) . '时' : '';
    $minute = floor($i / 60) ? floor($i / 60) . '分' : '';
    $second = $i % 60 ? $i % 60 . '秒' : '';
    $message = "当前任务:{$task}\n当前时间:" . date('Y-m-d H:i:s', time()) . "\n" . "专注时间:{$duration}分钟\n" . "剩下:" . $hour . $minute . $second;
    file_put_contents($recordPath, $message);
    sleep(1);
    if ($i == 1) {
        $content = "Great! You have been working for $duration minute! Now, Relax yourself $rest minute!";
        $content = 'msg * "' . $content . '"';
        file_put_contents($relatePath, $content);
        exec($absolutePath); // 执行bat文件
    }
}

bat文件:

msg * "Great! You have been working for 25 minute! Now, Relax yourself 5 minute!"

提示

image.png
  • 默认情况下,exec函数可能被禁用,要在php.ini中开启该功能

源码下载

源码资源的git地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,283评论 25 708
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,779评论 0 11
  • Sublime Text:一款具有代码高亮、语法提示、自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插...
    xiaotao123阅读 9,518评论 0 27
  • 【活动时间】2017年3月5日-3月8日各一期 【活动地址】亚飞温泉度假村 【出行方式】包车 【出行时间】3月5日...
    铁汉_群主阅读 267评论 0 0
  • 曾经,爱把屋门反锁,房间只开一盏小小的台灯,柔软的光均匀的打在刻满心里细细碎碎执念的书桌上,摊开日记本,写...
    Simpletime阅读 398评论 0 2