取当前日期时间并设置2个日期时间变量? (上午6点 - 上午5:59)
我正在尝试创建活动页面,并且我想创建2个datetime
变量。他们会拿现在的时间,并在上午06:00创建一个变量,在05:59上午创建一个变量。取当前日期时间并设置2个日期时间变量? (上午6点 - 上午5:59)
我遇到的问题是与计算。
如果一个人逛上页面3月17日,晚上11点 - 然后VAR1将3月17日06:00和var 18年3月2日上午05时59分。
但是,如果一个人在查看网页3月18日凌晨01:00,然后VAR 1仍然是3月17日06:00,同样也适用于VAR2。
我该如何取下面的$ date变量,并对其他2个变量进行计算?
date_default_timezone_set('America/New_York');
$date = date('Y-m-d H:i:s', time());
你可以简单地查询当前小时,看它是否小于6;如果是,那么当前逻辑日的开始(根据你的规则)是昨天上午6点;否则是今天早上6点。鉴于此,strtotime
可以平凡地让你“开始”的时间,并增加一天,让你“结束”的时间。
date_default_timezone_set('America/New_York');
$currentHour = date('H');
if ($currentHour < 6) {
// logical day started yesterday
$start = strtotime('yesterday 06:00');
$end = strtotime('today 05:59:59');
}
else {
// logical day started today
$start = strtotime('today 06:00');
$end = strtotime('tomorrow 05:59:59');
}
echo "The current logical day started on ".date('Y-m-d H:i:s', $start);
echo " and it ends on ".date('Y-m-d H:i:s', $end);
谢谢乔恩!但是,我怎样才能把它变成2个日期时间变量,这些变量可以输入到我的MySQL数据库中?例如,现在的变量看起来就像这个'2012-03-17 06:00:00'和'2012-03-18 05:59:00' – pufAmuf 2012-03-17 19:24:50
'$ end = strtotime('today 05:59:59 ')'和'$结束= strtotime('明天05:59:59')'想到。 – Jon 2012-03-17 19:25:57
如果我在凌晨1点看到这个,不会'strtotime('明天05:59:59')'显示3月19日? – pufAmuf 2012-03-17 19:28:31
切碎日期起至该方法可以改进,但原理工作...
<?php
date_default_timezone_set('America/New_York');
$date = date('Y-m-d H:i:s', time());
// get adjusted date which subtracts 6 hours
$date_adjusted = date('Y-m-d H:i:s', time() - 60 * 60 * 6);
// chop off the time (so we are always left with the correct date now)
$date_adjusted_date = preg_split("/ /",$date_adjusted);
// Add the time element (in this case 6 AM)
$correct_date = date('Y-m-d H:i:s', strtotime($date_adjusted_date[0]."T06:00:00"));
// check the result
echo $correct_date;
?>
否,该网页是夜总会 - 有时人可能会在凌晨1点或2点检查看看还在开放什么。这就是为什么我不希望1AM的页面突然显示下一个晚上的新活动,当时还有一些活动正在进行。这两个变量让我的MySQL脚本根据当前日期和时间知道要选择哪些数据。 – pufAmuf 2012-03-17 19:21:47