【问题标题】:Laravel Carbon, retrieve today's date with weekday?Laravel Carbon,用工作日检索今天的日期?
【发布时间】:2017-12-08 23:32:16
【问题描述】:

我正在使用 carbon 将 2 个日期与今天的日期进行比较,但是我在名为 weekday 的数据库中还有另一个字段,其中包含以下值:

'MO' '你' “我们”

所以我不仅要按日期搜索和输出,还要按工作日搜索:

public function show($id)
{   
    $today = Carbon::now();
    $weekday = //whatever carbon or something else has to retrieve today's day
    $event = Event::with('businesses')
       ->where('startdate', '<', $today->format('Y-m-d'))
       ->where('endate', '>', $today->format('Y-m-d'))
       //or where ('weekday') = $weekday?
       ->get();
    return view('events.showEvent', compact('event'));
}

【问题讨论】:

    标签: laravel datetime laravel-5 php-carbon


    【解决方案1】:

    $weekday = Carbon::parse($today)->format('1');

    【讨论】:

      【解决方案2】:

      如果您在说英语的地区,您可以通过对 Carbon 的 l 格式进行一些处理来获得简短的工作日格式,该格式返回工作日名称:

      strtoupper(substr($today->format('l'), 0, 2)); // Returns 'MO', 'TU', etc
      

      如果您可以访问 Carbon 2(2018-08-31 可用),它可以更短:

      strtoupper($today->isoFormat('dd'));
      

      【讨论】:

      • 这个答案要好得多
      【解决方案3】:

      我不确定 Carbon 是否有这种格式,但你可以做的是从天的地图和当前的工作日常量中获取 wekkday:

      $weekMap = [
          0 => 'SU',
          1 => 'MO',
          2 => 'TU',
          3 => 'WE',
          4 => 'TH',
          5 => 'FR',
          6 => 'SA',
      ];
      $dayOfTheWeek = Carbon::now()->dayOfWeek;
      $weekday = $weekMap[$dayOfTheWeek];
      

      【讨论】:

      • 星期天总是 0???因为不是每个人的一周都从星期日开始
      猜你喜欢
      • 2011-09-26
      • 1970-01-01
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-13
      • 2011-01-28
      • 1970-01-01
      相关资源
      最近更新 更多