使用PHP日期显示每周日期

时间:2009-07-05 20:20:50

标签: php mysql date

我不确定该怎么称呼它。但基本上我希望能够让用户点击“本周流行的故事”,并将它们带到一个页面,其中包含其他内容但主要是日期。例如,7月10日至17日。

我目前正在使用此代码:

    $seven_days_ago = date('j') - 7;
    $time_span = date('F ' . $seven_days_ago . ' - j');

现在,当我们进入7月时,我遇到了一个问题,因为它会显示7月-3日到4日之类的东西。我需要一种方法来检测七天前的变量是否为负数,并找出它应该是什么显示。帮助

谢谢!

4 个答案:

答案 0 :(得分:2)

您可以使用strtotime

$seven_days_ago = strtotime('-7 days');
$time_span = date('F j', $seven_days_ago) . ' - ' . date('F j');

以上为$time_span给了我“6月28日 - 7月5日”。

答案 1 :(得分:1)

使用

怎么样?
$unix_timestamp = mktime(0, 0, 0, date("m"), date("d")-7, date("Y"));

并且只返回返回的unix时间戳?

<强>更新

只需要一个小代码剪切,它将为您提供一个完整的工作示例。但是我不太喜欢它。)

<?php
  $today = date("d F");  
  list($today_day, $today_month) = explode(" ", $today);
  $previous = date("d F", mktime(0, 0, 0, date("m"), date("d")-7, date("Y")));
  list($previous_day, $previous_month) = explode(" ", $previous);    
  if($today_month != $previous_month){
    echo $previous_month." ".$previous_day." - ".$today_month." ".$today_day;
  }else{
    echo $today_month." ".$previous_day." - ".$today_day;
  }  
  die();
?>

答案 2 :(得分:1)

您需要使用strtotime

$timeago = strtotime("7 days ago");

答案 3 :(得分:0)

我刚创造了一个非常漂亮的小功能。只需将周数传递给它,就会返回一周的日期日期。

 function findWeekDates($weekNumber=null, $year=null ) {
// receives a specific Week Number (0 to 52) and returns that week's day dates in an array.
// If no week specified returns this week's dates.
    $weekNumber = ($weekNumber=='') ? date('W'): $weekNumber ;
    $year = ($year=='') ? date('Y'): $year ;

    $weekNumber=sprintf("%02d", $weekNumber);
    for ($i=1;$i<=7;$i++) {
        $arrdays[] = strtotime($year.'W'.$weekNumber.$i);
    }
    return $arrdays;
}

示例用法 - 查找给定的周开始日期和结束日期:

$week= (isset($_GET['week']) && $_GET['week'] !=='')? $_GET['week'] : date('W') ;
$year =  (isset($_GET['year']) && $_GET['year'] !=='')? $_GET['year'] : date('Y') ;

if($week>52) {
    $week = 1;
    $year++;
}else if($week<1) {
        $week=52;
        $year--;
    }
$week_days = findWeekDates($week, $year);
$starting_date = date('Y-m-d', $week_days[0]);
$ending_date = date('Y-m-d', $week_days[6]);

希望这会有所帮助...