【问题标题】:How to get week days in php?如何在php中获取工作日?
【发布时间】:2010-12-29 06:07:45
【问题描述】:

我想得到星期一、星期二、星期三...使用 php 函数。

我只有像 1,2,3..7 这样的数值

1 = 星期一 2 = 星期二 ... 7 = 星期日。

谁能帮我解决这个问题。

谢谢,

汉字

【问题讨论】:

  • @Kanji - 你的数值从 0 开始,以 6 结束???
  • @ajreal:我认为 0 是星期一,1 是星期二。
  • @Kanji - 所以以周日结束,即 6 点? (一种奇怪的格式),您应该更新您的问题以包含这条信息,否则大厅现在会是 0=星期一,(请参阅php.net/manual/en/function.date.php),通常是 1- 7(周一至周日)或 0-6(周日至周六)
  • #ajreal :谢谢,我已经更新了问题。
  • @Kanji - 怎么现在是 1-7?哈哈...你的数据到底是什么样的?不要被我的 cmets 影响

标签: php


【解决方案1】:

我个人最喜欢的...

$day_start = date( "d", strtotime( "next Sunday" ) ); // get next Sunday
for ( $x = 0; $x < 7; $x++ )
    $week_days[] = date( "l", mktime( 0, 0, 0, date( "m" ), $day_start + $x, date( "y" ) ) ); // create weekdays array.

【讨论】:

    【解决方案2】:

    以下内容应为您提供今天的星期几(例如星期二):

    &lt;? echo date("l"); ?&gt;

    或者对于特定日期,您可以使用以下内容:

    &lt;? echo date("l",strtotime("10 September 2000")); ?&gt;

    更多信息: http://www.php.net/manual/en/function.date.php

    如果您只是想将一个数字转换为一周中的某一天,您可以使用以下方法:

    function convertNumberToDay($number) {
        $days = array('Sunday','Monday', 'Tuesday', 'Wednesday','Thursday','Friday','Saturday');
        return $days[$number-1]; // we subtract 1 to make "1" match "Sunday", "2" match "Monday"
    }
    echo convertNumberToDay(3); // prints "Tuesday"

    【讨论】:

      【解决方案3】:

      如果您只有一个数值而不是完整的时间戳,那么到目前为止最简单的方法是:

      $weekdays = array('Monday', 'Tuesday', 'Wednesday', ...);
      $weekday = 0;
      echo $weekdays[$weekday];
      

      【讨论】:

        【解决方案4】:

        DateTime::format$format 参数为l(小写 L)。

        面向对象的风格:

        $object->format('l');
        

        程序风格:

        date_format(DateTime $object, 'l');
        

        您可以使用DateTime::__construct 创建一个DateTime 对象,您可以了解更多有关DateTime 格式的信息here

        【讨论】:

        • 谢谢,但你能用简单的 php 风格给出这个吗?
        • @Kanji 首先,您必须创建一个 DateTime 对象,然后使用程序样式。
        • 另外,如果您已经有了星期几,这个解决方案可能有点过分了。在这种情况下,deceze's answer 会更好。
        【解决方案5】:
        <?php
        $day = 2;
        echo date('l', mktime(0,0,$day,0,1)); // Tuesday
        ?>
        

        所以你可以像这样创建一个简单的函数:

        function getDayName($dayNo) {
            return date('l', mktime(0,0,$dayNo,0,1));
        }
        

        演示:http://www.ideone.com/hrITc

        【讨论】:

          【解决方案6】:

          如果您只是想将 0 转换为“星期一”,将 1 转换为“星期二”等,请使用数组。

          $day_of_week = array
          (
              0 => 'Monday',
              1 => 'Tuesday',
              2 => 'Wednesday',
              .
              6 => 'Sunday'
          );
          
          $day = 2;
          
          echo $day_of_week[$day];
          

          【讨论】:

          【解决方案7】:
          switch ($day) {
              case 0 : echo "Monday"; break;//if $day = 0  it will print Monday
              case 1 : echo "Tuesday"; break;
              case 2 : echo "Wednesday"; break;
          }
          

          【讨论】:

            猜你喜欢
            • 2017-03-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-09-07
            • 2016-11-21
            • 1970-01-01
            • 2011-12-21
            • 2021-01-09
            相关资源
            最近更新 更多