Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Powtarzanie wydarzeń w n-ty dzień powszedni każdego miesiąca

Oto możliwa alternatywa dla Ciebie. strtotime jest potężny i składnia zawiera naprawdę przydatne bity jak kompleksowe sformułowanie względnej godziny i daty .

Możesz go użyć do wygenerowania od pierwszego do N-tego określonego dnia tygodnia w określonym miesiącu, używając formatu „ z ”. Oto przykład przy użyciu date_create wywołać DateTime obiekt, ale zwykły stary strtotime działa w ten sam sposób:

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

Przekroczy również miesiąc, jeśli poprosisz o nieprawidłowy:

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

Pamiętaj, że działa tylko z liczbą porządkową sformułowanie. Niestety nie możesz zdać „1.” lub „3rd”.

Gdy użyjesz tego do pobrania właściwego N-tego dnia tygodnia, możesz po prostu dodać liczbę potrzebnych dni tygodnia do pominięcia (7 dla jednego tygodnia, 14 dla dwóch, 21 dla trzech itd.) zgodnie z wymaganiami do wyznaczonej daty zakończenia lub wyznaczonej liczby minęły tygodnie. Jeszcze raz strtotime na ratunek, używając drugiego argumentu do połączenia względności:

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

(Moja kopia lokalna zaakceptowała również '+14 days First Thursday of March 2011' , ale to było trochę dziwne.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy można wstawić nowy wiersz na górze tabeli MySQL?

  2. MYSQL nie dodaje informacji do mojej bazy danych

  3. MySQL mysql_tzinfo_to_sql program

  4. Wprowadzenie do typów danych SQL

  5. Jakie są największe korzyści z używania INDEKSÓW w mysql?