Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Acara Berulang di Hari Kerja ke-n Setiap Bulan

Inilah alternatif yang mungkin untuk Anda. strtotime sangat kuat, dan sintaksnya menyertakan bit yang sangat berguna seperti kata-kata waktu dan tanggal relatif komprehensif .

Anda dapat menggunakannya untuk menghasilkan hari kerja spesifik pertama hingga ke-N pada bulan tertentu dengan menggunakan format " dari ". Berikut adalah contoh menggunakan date_create untuk memanggil DateTime objek, tetapi strtotime lama biasa bekerja dengan cara yang sama:

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

Itu juga akan meluap bulan, jika Anda meminta yang tidak valid:

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

Perhatikan bahwa ini hanya berfungsi dengan nomor urut susunan kata. Sayangnya, Anda tidak dapat melewati "1" atau "3rd".

Setelah Anda menggunakan ini untuk mengambil hari kerja ke-N yang tepat, Anda dapat dengan mudah menambahkan jumlah hari kerja yang diperlukan untuk dilewati (7 untuk satu minggu, 14 untuk dua, 21 untuk tiga, dll) seperti yang diperlukan hingga tanggal akhir yang ditentukan atau jumlah yang ditentukan minggu telah berlalu. Sekali lagi, strtotime untuk menyelamatkan, menggunakan argumen kedua untuk menyatukan relatifitas:

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

(Salinan lokal saya juga menerima '+14 days First Thursday of March 2011' , tapi rasanya agak aneh.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menggunakan JDBC Untuk Menghubungkan Database MySql

  2. Cara Mengatur Ulang Kata Sandi Root di MySQL 8.0

  3. Tiba-tiba mencapai batas memori PHP dengan satu permintaan PDO?

  4. Driver Mysql JDBC ClassNotFoundException

  5. Hasil Tak Terduga MySQL:IN-klausa (angka, 'string') pada kolom varchar