使用phptime函数输出周数的函数
28天等于4周,对吗?我正在写一个函数,它基本上返回像这样的东西,1周,2周,3周,4周。1周基本上是从今天开始的前7天。但这是我所能做到的使用phptime函数输出周数的函数,php,Php,28天等于4周,对吗?我正在写一个函数,它基本上返回像这样的东西,1周,2周,3周,4周。1周基本上是从今天开始的前7天。但这是我所能做到的 function week() { $currentdate = time(); $numberofdays = 28; for ($i=0; $i<$numberofdays; $i++) { } } 功能周(){ $currentdate=time(); $numberofdays=28; 有关($i=0;$i的
function week() {
$currentdate = time();
$numberofdays = 28;
for ($i=0; $i<$numberofdays; $i++) {
}
}
功能周(){
$currentdate=time();
$numberofdays=28;
有关($i=0;$i的信息,请参见此处的文档:
我想你指的是:
<?php
$nextWeek = time() + (7 * 24 * 60 * 60);
// 7 days; 24 hours; 60 mins; 60secs
echo 'Now: '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
// or using strtotime():
echo 'Next Week: '. date('Y-m-d', strtotime('+1 week')) ."\n";
?>
上面的示例将输出类似于:
现在:2005-03-30下周:
2005-04-06下周:2005-04-06
那么,您是想保留所有的日期,比如日历,还是仅仅生成每周开始的日期
如果你想让所有的日子都过得很好,试试这个:
function week($days = 28)
{
//Note, I added the number of days to the function arguments, so that it can be variable without having to change the code
if(!is_int($days) || $days <= 0)
{
return false;
}
$start = strtotime("midnight tonight");
$currentweek = 1;
$weeks = array();
for ($i = 1; $i <= $days; $i++)
{
$weeks[$currentweek][] = $start + ($i * 86400);
if(!(i % 7))
{
$currentweek++;
}
}
return $weeks;
}
功能周($days=28)
{
//注意,我在函数参数中添加了天数,因此它可以是可变的,而无需更改代码
如果(!is_int($days)|$days/**
*返回日期所在月份的周数
*@param$date一个YYYY-MM-DD格式的日期
*@param$rollover本周结束的日期
*/
函数getWeeks($date,$rollover)
{
$cut=substr($date,0,8);
$daylen=86400;
$timestamp=strottime($date);
$first=strottime($cut.00”);
$passed=($timestamp-$first)/$daylen;
$i=1;
$weeks=1;
对于($i;$iif(i%7==0)echo“week:”.$j++;@Byron Whitlock,这不使用当前日期?请显示您希望该日期的确切输出是今天。您是否尝试返回当前日期所在的一周?如果恰好在DST切换时,这将中断。与使用时间戳进行日期计算时一样。
/**
* Returns the amount of weeks into the month a date is
* @param $date a YYYY-MM-DD formatted date
* @param $rollover The day on which the week rolls over
*/
function getWeeks($date, $rollover)
{
$cut = substr($date, 0, 8);
$daylen = 86400;
$timestamp = strtotime($date);
$first = strtotime($cut . "00");
$elapsed = ($timestamp - $first) / $daylen;
$i = 1;
$weeks = 1;
for($i; $i<=$elapsed; $i++)
{
$dayfind = $cut . (strlen($i) < 2 ? '0' . $i : $i);
$daytimestamp = strtotime($dayfind);
$day = strtolower(date("l", $daytimestamp));
if($day == strtolower($rollover)) $weeks ++;
}
return $weeks;
}
$dateNow = date("Y-m-d");
echo getWeeks($dateNow, "monday");