如何在php中创建一个星期名称的数组

diE*_*cho 11 php

我知道这是愚蠢的,但我该怎么做?我想通过PHP创建一个七天的数组我的意思是所有七个工作日.我不想像他一样写它们:

sunday monday tuesday ...etc
Run Code Online (Sandbox Code Playgroud)

天将从星期日开始,这意味着如果今天是3月29日(星期一),那么它会自动抓取当前日期并从星期日开始创建一系列工作日.

数组总是以这种方式

 $weakarray=("sunday","monday",......,"saturday");
Run Code Online (Sandbox Code Playgroud)

Thi*_*lem 49

这可能有用..

$timestamp = strtotime('next Sunday');
$days = array();
for ($i = 0; $i < 7; $i++) {
    $days[] = strftime('%A', $timestamp);
    $timestamp = strtotime('+1 day', $timestamp);
}
Run Code Online (Sandbox Code Playgroud)


Yac*_*oby 42

如果他们总是需要从星期日开始,为什么要动态创建数组呢?这样做有什么问题?

$days = [
    'Sunday',
    'Monday',
    'Tuesday',
    'Wednesday',
    'Thursday',
    'Friday',
    'Saturday'
];
Run Code Online (Sandbox Code Playgroud)

任何其他解决方案都会使您的代码更难理解,在这种情况下,动态执行它似乎有点矫枉过正.

  • @I喜欢PHP编写始终做同样事情并产生相同结果的代码是无稽之谈.除非在代码中表达结果比直接写代码更容易,但这不是这种情况. (10认同)
  • 我认为通过php创建它会很有趣 (3认同)
  • 我认为保持尾随逗号是更好的做法,因为它对版本控制有好处.如果最后一行是特殊的,那么添加新行也需要更改该行,即使该行上的数据没有真正改变.增加更改次数会增加大多数版本控制任务的复杂性...... (2认同)

小智 8

有点迟到的答案,修改被接受的最佳答案

<?php
    $days = array();
    for ($i = 0; $i < 7; $i++) {
        $days[$i] = jddayofweek($i,1);
    }
?>
Run Code Online (Sandbox Code Playgroud)

结果:

array(7) { 
  [0]=> "Monday"
  [1]=> "Tuesday" 
  [2]=> "Wednesday" 
  [3]=> "Thursday" 
  [4]=> "Friday" 
  [5]=> "Saturday" 
  [6]=> "Sunday" 
}
Run Code Online (Sandbox Code Playgroud)

请参阅PHP的jddayofweek