一个简单的记时脚本

可以实现的功能:
输入一个提前的时间(10:10, 10点10分)
到时间自动终止

#!/bin/bash
 
read -p "Please input the time (like: `date +%H:%M`): " time
echo $time
 
while :
do
    if [ `date +%H:%M` = "$time" ]
    then
        echo "$time is up!"
        break
    else
        for ((i=0;i<5;i++))
        do
            echo -n "* "
            sleep 1
        done
        echo -ne "`date +%H:%M:%S` \n"
    fi
 
done

运行结果:

[root@localhost shell]# sh 5.sh
Please input the time (like: 00:28): 00:29
00:29
* * * * * 00:28:44
* * * * * 00:28:49
* * * * * 00:28:55
* * * * * 00:29:00
00:29 is up!

继续阅读

PHP获取前前后后的日期

主要用strtotime()函数来获取到时间节点的UNIX时间戳,
再用date()函数来格式化日期

下面是简单的几个实例:

< ?php
 
echo date('Y-m-d', strtotime("-1 day")); // 前一天
echo date('Y-m-d', strtotime("now"));   // 当前日期 和date('Y-m-d')是一样的
echo date('Y-m-d', strtotime("+1 day")); // 后一天
echo date('Y-m-d', strtotime("last week +1 day")); // 上一周的后一天
echo date('Y-m-d', strtotime("next week -1 day")); // 下一周的前一天
echo date('Y-m-d', strtotime("last monday"));  // 上周一
 
?>

继续阅读

MySQL UNIX时间戳与日期之间切换

比如:
2010-11-11 11:11:11 的UNIX时间戳为 1289473895

假如你要在操作中要对其中一种切换成另一种

主要用到了两个函数:UNIX_TIMESTAMP, FROM_UNIXTIME

2010-11-11 11:11:11 —> 1289473895
UNIX_TIMESTAMP(‘2010-11-11 11:11:11’) 显示出来的就是 1289473895

1289473895 —> 2010-11-11 11:11:11
FROM_UNIXTIME(1289473895) 显示出来的就是 2010-11-11 11:11:11

继续阅读

记录一段代码(把数组分为每天两个)

$sql = "SELECT brand_id, brand_name FROM " . $GLOBALS['ecs']->table('brand') . " ORDER BY brand_id ASC";
	$brand_arr = $GLOBALS['db']->getAll($sql);
	$start = local_mktime(0, 0 , 0, 11, 26, 2010);  // 开始的日期
	$i = 1;
	$now = gmtime();            //当前时间
	foreach ($brand_arr as $key=>$val) {
		$brand_arr[$key]['date'] = $start;
		if ($i < 2) {  // 一天执行两个品牌
			$i++;
		} else {
			$i = 1;
			$start += 86400;
		}
	}
	foreach ($brand_arr as $key=>$val) {  // 找出今天要更新品牌
		if (($val['date'] < $now) && ($val['date'] > $now - 86400)) {
			$update_arr[] = $val;
		}
	}

继续阅读