Mysql
 sql >> база данни >  >> RDS >> Mysql

Повтарящи се събития в n-тия делник на всеки месец

Ето една възможна алтернатива за вас. strtotime е мощен и синтаксисът включва наистина полезни битове като изчерпателна формулировка за относително време и дата .

Можете да го използвате, за да генерирате от първия до N-ти конкретни делнични дни на конкретен месец, като използвате формата "от". Ето пример за използване на date_create за да извикате DateTime обект, но обикновен стар strtotime работи по същия начин:

php > $d = date_create('Last Friday of March 2011'); if($d instanceof DateTime) echo $d->format('l F d Y H:i:s');
Friday March 25 2011 00:00:00
php > $d = date_create('First Friday of March 2011'); if($d instanceof DateTime) echo $d->format('l F d Y H:i:s');
Friday March 04 2011 00:00:00
php > $d = date_create('First Sunday of March 2011'); if($d instanceof DateTime) echo $d->format('l F d Y H:i:s');
Sunday March 06 2011 00:00:00
php > $d = date_create('Fourth Sunday of March 2011'); if($d instanceof DateTime) echo $d->format('l F d Y H:i:s');
Sunday March 27 2011 00:00:00
php > $d = date_create('Last Sunday of March 2011'); if($d instanceof DateTime) echo $d->format('l F d Y H:i:s');
Sunday March 27 2011 00:00:00

Той също така ще препълни месеца, ако поискате невалиден:

php > $d = date_create('Ninth Sunday of March 2011'); if($d instanceof DateTime) echo $d->format('l F d Y H:i:s');
Sunday May 01 2011 00:00:00

Имайте предвид, че работи само с редовния номер формулировка. Не можете да преминете "1-во" или "3-то", за съжаление.

След като използвате това, за да вземете правилния N-ти делничен ден, можете просто да добавите броя на нужните дни от седмицата, които да пропуснете (7 за една седмица, 14 за две, 21 за три и т.н.), както е необходимо до определената крайна дата или определен брой изминаха седмици. Още веднъж, strtotime за помощ, използвайки втория аргумент за свързване на относителност:

php > echo date('l F d Y H:i:s', strtotime('+14 days', strtotime('First Thursday of March 2011')));
Thursday March 17 2011 00:00:00

(Моето локално копие също прие '+14 days First Thursday of March 2011' , но това се чувстваше някак странно.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да свържа C++ MySQL Connector Libraries с Cmake?

  2. Свържете се с MySQL база данни с C# като не-root потребител?

  3. как да търся точен низ в mysql

  4. Как да променя ПОТРЕБИТЕЛСКАТА ИМЕ И ПАРОЛА на MySQL?

  5. mysql динамична заявка в съхранена процедура