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地址

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏王二麻子IT技术交流园地

Intellij16创建Spring-Mybatis项目创(填)建(坑)记录,解决IDEA下找不到xml文件的问题

转入Intellij已经有1个月了,编程效率确实比Eclipse快了很多,而且可以直接使用Maven,然后就想写个小项目玩玩,架构搭建完后,想着万事俱备,又不是...

1975
来自专栏FreeBuf

Flash XSS检测脚本的简单实现

前言 这里主要是讲如何快速扫描到有问题的flash文件,用于批量,有时候很笨的方法也会有奇效,下面记录一下在实现过程中的一些思路和遇到的一些坑。 ? 第三方插件...

2705
来自专栏代码GG之家

android MVVM开发模式(二)

举手之劳,帮忙分享出去,让更多热爱编程的人加入进来。 简介 之前讲了那么多,主要围绕着这个核心概念:绑定。 不过相对来说,我们上节讲的其实只是它的一个知识点:解...

2067
来自专栏Pulsar-V

PHP微信开发入门(二)

微信服务器消息推送 微信的消息推送方式是客户操作微信发生一系列事件,然后腾讯微信服务器发送一个XML数据POST请求把事件描述发送到你填写的服务器URL上,你的...

3636
来自专栏达摩兵的技术空间

vue项目实践003

通过本问将看到我在vue的项目中,进行的一系列的项目优化,然后看到不同的维度将这些点进行分类。

982
来自专栏玄魂工作室

老司机教你下载tumblr上视频和图片的正确姿势

本文面向初学者。 很多同学问我:“我非常想学Python编程,但是找不到兴趣点”。 还有的同学呢,找到了很好的兴趣点,但是无从下手,“玄魂老师,我想下载tumb...

1.1K7
来自专栏坚毅的PHP

进程、线程、轻量级进程、协程和go中的Goroutine 那些事儿

电话面试被问到go的协程,曾经的军伟也问到过我协程。虽然用python时候在Eurasia和eventlet里了解过协程,但自己对协程的概念也就是轻量级线程,还...

4053
来自专栏小樱的经验随笔

BugkuCTF web基础$_POST

2463
来自专栏Python中文社区

Python爬虫:模拟登录知乎完全详解

專 欄 ❈ sunhaiyu,Python中文社区专栏作者 专栏地址: http://www.jianshu.com/u/4943cb2c6ea4 ❈ 这几天...

6739
来自专栏Java架构

深入理解Java虚拟机到底是什么什么是Java虚拟机从进程的角度解释JVM

1735

扫码关注云+社区