【问题标题】:Getting the date for current day in PHP在 PHP 中获取当天的日期
【发布时间】:2011-01-19 08:55:54
【问题描述】:

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

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

但是输出是

21-02-10
Thu

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

我想要的 day 是本周的星期一日期,可以在一周中的任何一天生成。所以我所做的是,我将今天的日期与 (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 是今天必须返回的最终数组。有没有其他更好的方法来做这个操作。

【问题讨论】:

    标签: php date timestamp


    【解决方案1】:

    我试过这个来获取当前日期。

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

    【讨论】:

      【解决方案2】:

      这个怎么样:

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

      【讨论】:

      【解决方案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));
      

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

          我试过的就在这里……

          echo date("D",$x)."&lt;br&gt;";

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

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

          【讨论】:

          • 回显日期("D",strtotime($x,1))."
            ";这也没有给出正确的答案。
          【解决方案6】:

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

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

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

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

          【讨论】:

          • $x = '21-02-2010' 的输出仍然是 Thu;
          【解决方案7】:

          我使用函数 date 和指向它的路径“D”指的是当天,它适用于我

           $today = date("D"); 
          

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-01-18
            • 1970-01-01
            • 1970-01-01
            • 2022-11-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多