保持时间和星期几的数据结构PHP

时间:2015-01-26 14:31:18

标签: php data-structures dayofweek

如何只在一天中的某个时间和一周中的某一天保留PHP中的数据结构?

例如:周日17:20

此外,我需要添加分钟和小时。

例如:周日22:03 +周一03:00 = 01:03

1 个答案:

答案 0 :(得分:-1)

未经测试,可能不是最佳方式

class TimeWeekday {
    private $hour;
    private $minute;
    private $day;

    private $days = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');

    public function __construct($hour, $minute, $day) {
        $this->hour = $hour;
        $this->minute = $minute;
        $this->day = $day;
    }

    public function add($hours, $minutes, $days = 0) {
        $newMinutes = $this->minute + $minutes;
        $this->minute = $newMinutes % 60;
        if ($this->minute < 0) {
            $this->minute += 60;
        }
        $newHours = $this->hour + $hours + floor($newMinutes / 60);
        $this->hour = $newHours % 24;
        if ($this->hour < 0) {
            $this->hour += 24;
        }
        $newDay = $this->day + $days + floor($newHours / 60);
        $this->day = $newDay % 7;
        if ($this->day < 0) {
            $this->day += 7;
        }
    }

    public function substract($hours, $minurtes, $days = 0) {
        $this->add(-$hours, -$minurtes, -$days);
    }

    public function getValue() {
        return sprintf('%02d:%02d %s', $this->hour, $this->minute, $this->days[$this->day]);
    }
}

$x = new TimeWeekday(22, 3, 6);
$x->add(3,0);
echo $x->getValue();