在PHP中获取当天的日期

时间:2010-02-21 16:10:45

标签: php date timestamp

我想在php中获取当天的日期。我试过的就是这里......

echo $x."<br>";
echo date("D",$x)."<br>";

但输出是

21-02-10
Thu

它给出了正确的日期,但没有给出正确的日期值。为什么......?

我想要的一天是当周的星期一,可以在一周的任何一天生成。所以我所做的就是,今天我要和(Mon,Tue ...... Sun)比较并分别使用

创建一个时间戳。
case "Mon":

$startdate1=date("d-m-y");
$parts = explode('-',$startdate1);
$startdate2 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+1),$parts[2]));
$startdate3 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+2),$parts[2]));
$startdate4 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+3),$parts[2]));
$startdate5 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+4),$parts[2])); 
$startdate6 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+5),$parts[2]));
$startdate7 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+6),$parts[2]));

$dates=array(1 => $startdate1,$startdate2,$startdate3,$startdate4,$startdate5,$startdate6,$startdate7);
$i=1;
while( $i <= 7 )
{
echo $dates[$i];
$i++;
}
break;

$ date是必须返回的今天的最终数组。还有其他更好的方法来执行此操作。

7 个答案:

答案 0 :(得分:19)

我试过这个来获得当天。

echo date('l'); // output: current day.

答案 1 :(得分:5)

这个怎么样:

//today is monday
if (1 == date('N')){
    $monday = time();
}else{
    $monday = strtotime('last Monday');
}

for ($i = 0; $i < 7; $i++){
    echo date('d-m-Y', $monday) . '<br>';
    $monday = strtotime('tomorrow', $monday);
}

首先找到星期一,如果不是今天,则打印7个日期

答案 2 :(得分:3)

  

我想要的日子是星期一的日期   对于本周可以   在一周中的任何一天生成。

这就是你想要的。 $mday是本周星期一的月份日。没关系,如果不是肯定的,mktime将处理这个权利。 $monday的时间戳是周一午夜的时间戳。

$now = getdate();
$mday = $now['mday'] - ($now['wday'] + 6) % 7;
$monday = mktime(0, 0, 0, $now['mon'], $mday, $now['year']);
echo(date('d-m-y', $monday));

答案 3 :(得分:3)

我所做的解决方法是在日期函数中使用日期格式('d-m-Y')代替('d-m-y'),这导致了问题。因此,strtotime接受了格式并给出了正确的结果

$t=date('d-m-Y');
echo date("D",strtotime($t));

答案 4 :(得分:2)

  

我试过的就是......

     

echo date("D",$x)."<br>";

date期望将timestamp(int)值作为第二个参数。您的$x是一个包含不明确日期格式的字符串。首先使用strptimestrtotime将该日期转换为时间戳,并正确使用date函数获取正确的日期值。

关于你的第二部分,你不需要(也不应该)检查日期名称来计算正确的星期一,星期二等。更有效的方法是例如使用{{获得strtotime等等。

答案 5 :(得分:1)

您可能会将字符串作为时间戳

传递
echo $x."<br>";
echo date("D",$x)."<br>";

删除$x,它会输出正确的日期或将其更改为

$x = '21-02-2010';
echo date('D', strtotime($x));

答案 6 :(得分:1)

我使用函数日期和路径来&#34; D&#34;那是对今天的评价,它与我合作

 $today = date("D"); 

并获取有关当前日期的完整信息

  $today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001