我不确定该怎么称呼它。但基本上我希望能够让用户点击“本周流行的故事”,并将它们带到一个页面,其中包含其他内容但主要是日期。例如,7月10日至17日。
我目前正在使用此代码:
$seven_days_ago = date('j') - 7; $time_span = date('F ' . $seven_days_ago . ' - j');
现在,当我们进入7月时,我遇到了一个问题,因为它会显示7月-3日到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]);
希望这会有所帮助...