2019-6-11 11:51:03 星期二

情景:

要定时发送邮件,

邮件数据入表时就记录下其待发送时间,

然后crontab是每分钟扫描邮件表, 找出当时那一分钟需要发送的邮件

举例:

假如有一种邮件要每隔30分钟发出,

那么插入数据库的发送时间种的 '分钟' 应该是30的整数倍:  2019-6-11 12:30 或 2019-6-11 13:00 或 2019-6-11 13:30

如果当前时间是 2019-6-11 12:29 那么插入数据库的待发送时间应该是 2019-6-11 12:30

如果当前时间是 2019-6-11 12:30 那么插入数据库的待发送时间应该是 2019-6-11 13:00

 function getNextPoint($minute)
{
echo $minute . ' : ';
$time = time() + 60;
// $time = strtotime('2019-06-11 11:50:07') + 60;
$next = '';
for ($i=0; $i<120; $i++) {
$minu = intval(date('i', $time));
$minu = $minu ? $minu : 60;
echo $minu . ' -- '; if ($minu % $minute == 0) {
$next = date('Y-m-d H:i:00', $time);
break;
} else {
$time += 60;
}
} return $next;
} echo date('Y-m-d H:i:s'). '<br>';
for ($j=1; $j<60; $j++) {
echo getNextPoint($j). '<br>';
}

输出过程:

2019-06-11 12:09:31
1 : 10 -- 2019-06-11 12:10:00
2 : 10 -- 2019-06-11 12:10:00
3 : 10 -- 11 -- 12 -- 2019-06-11 12:12:00
4 : 10 -- 11 -- 12 -- 2019-06-11 12:12:00
5 : 10 -- 2019-06-11 12:10:00
6 : 10 -- 11 -- 12 -- 2019-06-11 12:12:00
7 : 10 -- 11 -- 12 -- 13 -- 14 -- 2019-06-11 12:14:00
8 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 2019-06-11 12:16:00
9 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 2019-06-11 12:18:00
10 : 10 -- 2019-06-11 12:10:00
11 : 10 -- 11 -- 2019-06-11 12:11:00
12 : 10 -- 11 -- 12 -- 2019-06-11 12:12:00
13 : 10 -- 11 -- 12 -- 13 -- 2019-06-11 12:13:00
14 : 10 -- 11 -- 12 -- 13 -- 14 -- 2019-06-11 12:14:00
15 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 2019-06-11 12:15:00
16 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 2019-06-11 12:16:00
17 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 2019-06-11 12:17:00
18 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 2019-06-11 12:18:00
19 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 2019-06-11 12:19:00
20 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 2019-06-11 12:20:00
21 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 2019-06-11 12:21:00
22 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 2019-06-11 12:22:00
23 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 2019-06-11 12:23:00
24 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 2019-06-11 12:24:00
25 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 2019-06-11 12:25:00
26 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 2019-06-11 12:26:00
27 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 2019-06-11 12:27:00
28 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 2019-06-11 12:28:00
29 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 2019-06-11 12:29:00
30 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 2019-06-11 12:30:00
31 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 2019-06-11 12:31:00
32 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 2019-06-11 12:32:00
33 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 2019-06-11 12:33:00
34 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 2019-06-11 12:34:00
35 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 2019-06-11 12:35:00
36 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 2019-06-11 12:36:00
37 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 2019-06-11 12:37:00
38 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 2019-06-11 12:38:00
39 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 2019-06-11 12:39:00
40 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 2019-06-11 12:40:00
41 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 2019-06-11 12:41:00
42 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 2019-06-11 12:42:00
43 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 2019-06-11 12:43:00
44 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 2019-06-11 12:44:00
45 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 45 -- 2019-06-11 12:45:00
46 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 45 -- 46 -- 2019-06-11 12:46:00
47 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 45 -- 46 -- 47 -- 2019-06-11 12:47:00
48 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 45 -- 46 -- 47 -- 48 -- 2019-06-11 12:48:00
49 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 45 -- 46 -- 47 -- 48 -- 49 -- 2019-06-11 12:49:00
50 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 45 -- 46 -- 47 -- 48 -- 49 -- 50 -- 2019-06-11 12:50:00
51 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 45 -- 46 -- 47 -- 48 -- 49 -- 50 -- 51 -- 2019-06-11 12:51:00
52 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 45 -- 46 -- 47 -- 48 -- 49 -- 50 -- 51 -- 52 -- 2019-06-11 12:52:00
53 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 45 -- 46 -- 47 -- 48 -- 49 -- 50 -- 51 -- 52 -- 53 -- 2019-06-11 12:53:00
54 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 45 -- 46 -- 47 -- 48 -- 49 -- 50 -- 51 -- 52 -- 53 -- 54 -- 2019-06-11 12:54:00
55 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 45 -- 46 -- 47 -- 48 -- 49 -- 50 -- 51 -- 52 -- 53 -- 54 -- 55 -- 2019-06-11 12:55:00
56 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 45 -- 46 -- 47 -- 48 -- 49 -- 50 -- 51 -- 52 -- 53 -- 54 -- 55 -- 56 -- 2019-06-11 12:56:00
57 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 45 -- 46 -- 47 -- 48 -- 49 -- 50 -- 51 -- 52 -- 53 -- 54 -- 55 -- 56 -- 57 -- 2019-06-11 12:57:00
58 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 45 -- 46 -- 47 -- 48 -- 49 -- 50 -- 51 -- 52 -- 53 -- 54 -- 55 -- 56 -- 57 -- 58 -- 2019-06-11 12:58:00
59 : 10 -- 11 -- 12 -- 13 -- 14 -- 15 -- 16 -- 17 -- 18 -- 19 -- 20 -- 21 -- 22 -- 23 -- 24 -- 25 -- 26 -- 27 -- 28 -- 29 -- 30 -- 31 -- 32 -- 33 -- 34 -- 35 -- 36 -- 37 -- 38 -- 39 -- 40 -- 41 -- 42 -- 43 -- 44 -- 45 -- 46 -- 47 -- 48 -- 49 -- 50 -- 51 -- 52 -- 53 -- 54 -- 55 -- 56 -- 57 -- 58 -- 59 -- 2019-06-11 12:59:00

PHP获取指定分钟数的下一个整数倍的更多相关文章

  1. 2.获取指定目录及子目录下所有txt文件的个数,并将这些txt文件复制到F盘下任意目录

    package cn.it.text; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...

  2. 随机获取min和max之间的一个整数

    // 随机获取min和max之间的一个整数 const randomNum = (Min, Max) => { let Range = Max - Min; let Rand = Math.ra ...

  3. 看超额担保免信任的NGK DeFi 乐高如何打造下一个千倍币?

    2020年中,DeFi的高收益率吸引了大量热钱涌入,DeFi总锁仓量破百亿美金.如今,流动性挖矿的热潮暂时停歇,但对于 NGK DeFi项目来说,它背后的演变进化从未停止. 免信任是 NGK DeFi ...

  4. NGK DeFi Baccarat或将推动BGV成为下一个千倍币!

    目前,已经接近2020年年末,但是DeFi的热潮还在持续.近日,DeFi市场传出一道重磅利好消息,便是NGK DeFi去中心化交易系统Baccarat即将上线.届时,将会引起整个区块链市场的又一次震动 ...

  5. jquery 如何获取select 选中项的下一个选项的值

    <select> <option value="1" selected="selected">a</option> < ...

  6. Jmeter获取Cookie并传递到下一个线程---跨线程后cookie找不到了

    网上找了一堆文章没有一个是实际操作的,自己边试边查边摸索终于找到了一个全套的办法. 原创文章,转载请说明出处. 1.取得cookie 直接这样写就可以了${COOKIE_JSESSIONID},当然具 ...

  7. js获取上一个月、下一个月格式为yyyy-mm-dd的日期

    /** * 获取上一个月 * * @date 格式为yyyy-mm-dd的日期,如:2014-01-25 */ function getPreMonth(date) { var arr = date. ...

  8. java计算下一个整5分钟时间点

    需求背景 我的需求是获取当前时间之后的下一个"整5分钟时间点". 首先,那么何为"整5分钟时间点"? 满足以下两个条件的时间: 分钟数等于以下时间中的一个,且秒 ...

  9. 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本

    摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 ...

随机推荐

  1. BBS之文章详情页搭建

    博客评论相关 博客文章详情页搭建 {% extends 'base.html' %} {% block css %} <style> #div_digg { float: right; m ...

  2. ShortKey – Visual Studio/VS Code etc.

    Switching between .h and .cppIn Visual Studio 2013 and later :there is a default keyboard shortcut f ...

  3. cobbler部署错误总结

    web 报错500 Internal Server Error解决方案 在安装使用Cobbler web界面的时候提示HTTP 500错误,也就是服务器内部错误,检查防火墙和selinux都是为关闭状 ...

  4. PAT 乙级 1076.Wifi密码

    题目来源 下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1:B-2:C-3:D-4:请同学们自己作答 ...

  5. js动画--封装透明度

    这一章我将讲述一些如何将透明度的变化也封装到调用函数中,对于前面几节课的介绍,已经将基本的属性封装到函数中了,宽,长等属性.关于透明度的变化还是有一点区别的,这一章我将封装透明度 先创建一个div & ...

  6. 【Linux】linux ln文件夹的链接(转)

    1 文件的链接ln -s a.py b.pya.py 软链接到b.py (无论 b.py 文件存在与否 都可以成功)2 文件夹的链接ln -s a ba文件夹软链接到b文件夹(b文件夹不能提前创建) ...

  7. php的快速排序

    <?php     function quicksort($str){         if(count($str)<=1) return $str;//如果个数不大于一,直接返回     ...

  8. hook杂思-面向函数编程

    hook:方法拦截 以函数单元为编程对象: 在编译时或运行时进行函数单元的替代.修改.功能添加操作: 所有的操作都不是在原始编码时完成的: 函数单元作为参量.操作对象.编码对象存在于机制中: 机制: ...

  9. NSString+URLParser NSScanner

    @implementation NSString (URLParser) -(NSDictionary*)parserToDict { NSScanner *scanner = [NSScanner ...

  10. 分布式session共享

    一.前言 为什么会出现session共享问题? 客户端与服务器交互时会产生唯一的sessionid用于标记用户,但是在分布式架构中,如果还是采用 session 的方式,用户发起请求,通过 nginx ...