实际上这有点棘手。我正在设置食物输送系统。当买家从这个网页上购买食物时,他会收到一封邮件,说明食物何时送达(估计交货时间)。如果他在凌晨00:00到10:00之间购买,他会在下午12:30吃饭。如果他在14:00到23:59之间购买,他会在第二天下午12:30吃饭。毋庸置疑,食品服务在10点01分至13点59分之间暂停服务。我已经编写了邮件系统,我唯一没有的是用于计算何时送达食物的代码。有人可以帮忙吗?感谢
答案 0 :(得分:1)
我做了这个shell可执行文件。它假定订单时间($orders
)是“现在”。
#!/usr/local/bin/php
<?php
$orders=array(
"2012-02-21 09:21:00",
"2012-02-21 10:45:00",
"2012-02-21 14:10:00"
);
function ordertime($when) {
$datearray=getdate(strtotime($when));
if ($datearray['hours'] < 10) {
// order ships today
return strtotime("today 12:30");
} else
if ($datearray['hours'] < 14) {
// we can't take this order
return(FALSE);
} else {
// order ships tomorrow
return strtotime("tomorrow 12:30");
}
}
date_default_timezone_set("America/Toronto");
foreach ($orders as $oneorder) {
$delivery=ordertime($oneorder);
if ($delivery) {
printf("%s: %s - %s\n", $oneorder, $delivery, strftime("%Y-%m-%d %T", $delivery));
} else {
printf("%s: INVALID ORDER TIME\n", $oneorder);
}
}
当我运行它时,输出如下所示:
ghoti@pc$ ./test.php
2012-02-21 09:21:00: 1329845400 - 2012-02-21 12:30:00
2012-02-21 10:45:00: INVALID ORDER TIME
2012-02-21 14:10:00: 1329931800 - 2012-02-22 12:30:00
ghoti@pc$
那是你在找什么?
答案 1 :(得分:0)
你可以这样做。
$time = date('H');
if($time <= 10){
$delivery_time = time('d-m-Y').'12:30pm';
}else if($time >= 14){
$delivery_time = date("d-m-Y",strtotime("+1 days")).'12:30pm';
}