Изменение первого дня недели в PHP - PullRequest
2 голосов
/ 20 сентября 2011

На моем веб-сайте я работаю с расписаниями, поэтому мне нужно изменить начало недели на любой день, какой бы пользователь ни захотел.По умолчанию начало недели - воскресенье или понедельник в зависимости от часового пояса, но мне может потребоваться, чтобы начало недели было средой.Так есть ли способ сделать это в PHP ??

Разъяснение расписания

Мне нужно рассчитать заработную плату людей, основываясь на времени, когда они вошли в систему. Теперь я должен сгруппировать этозарплата еженедельно.Когда я говорю, что еженедельно неделя не всегда воскресенье или суббота, это может быть среда со вторника или четверг по среду.Так что начало недели будет разным для разных компаний.

Скажем, например, что пользователь вошел в систему на 5 часов в понедельник (19/09/2011), и тот же пользователь вошел в систему на 10 часов в среду (14/09/2011).И моя неделя начинается в четверг, а затем я получаю две недели между этими двумя датами: с 8/09/2011 по 14/09/2011 и с 15.09.2011 по 21/09/2011.

На самом деле у меня нет кода, так как я не смог придумать логику для установления.У меня есть это в Java, но я не знаю, как сделать это в PHP без встроенных функций.Есть предложения?

1 Ответ

1 голос
/ 20 сентября 2011

Ответ, который я получил для вас, не является специфическим для PHP, скорее, это предложение того, как вы должны это сделать.

То, что вы хотите, не отличается от того, когда вы должны отслеживать месяцы финансового года - финансовый год может начинаться в любом календарном месяце. Способ сделать это - сохранить день как смещение, то есть номер дня.

Думая об этом ОО, у вас может быть объект данных, который представляет фактический календарный день (с понедельника по воскресенье) и может содержать реальную дату, поэтому он представляет фактический физический день. Затем вы расширяете этот класс (наследуете от него) и создаете класс, представляющий ваш виртуальный (или фискальный ) день, и добавляете целочисленное свойство, которое сохраняет его смещение в течение вашей виртуальной / фискальной недели.

Таким образом, ваш новый объект финансового дня все еще представляет абсолютную дату (например, среда 21 октября 2011 г.), но его смещение может быть нулевым, что означает, что это первый день в финансовой неделе. Это легко расширяется, так что объект финансового дня также может знать о своей позиции в течение финансовой недели и финансового месяца и т. Д.

Надеюсь, это имеет смысл для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...