繁体   English   中英

在PHP中获取当天的日期

[英]Getting the date for current day in PHP

我想在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是必须返回的今天的最终数组。 还有其他更好的方法来执行此操作。

我试过这个来获得当天。

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

这个怎么样:

//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个日期

我想要的是当天星期一的日期,可以在一周的任何一天生成。

那正是你想要的。 $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));

我在解决它时所做的是在日期函数中使用日期格式('dm-Y')而不是('dm-y'),这导致了问题。 因此strtotime接受了格式并给出了正确的结果

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

我试过的是......

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

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

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

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

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

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

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

我使用函数日期和路径来指示当前日期的“D”,它适用于我

 $today = date("D"); 

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM