Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengira bilangan hari dalam tahun tertentu dalam php

Bagaimana untuk mengira bilangan hari dalam tahun tertentu dalam php

PHPz
PHPzasal
2023-03-20 16:12:541907semak imbas

PHP ialah bahasa skrip bahagian pelayan yang digunakan secara meluas yang boleh digunakan untuk membangunkan pelbagai tapak web dan aplikasi dinamik. Mengira bilangan hari dalam tahun tertentu juga merupakan fungsi yang sangat berguna dalam senario tertentu. Dalam artikel ini, kami akan memperkenalkan cara mengira bilangan hari dalam tahun tertentu menggunakan PHP.

  1. Cara mengira bilangan hari dalam setahun

Untuk mengira bilangan hari dalam setahun, anda perlu memahaminya terlebih dahulu bilangan hari dalam setahun tidak pasti. Setahun biasanya mempunyai 365 hari, tetapi dalam tahun lompat, tahun itu mempunyai 366 hari. Tahun lompat ialah tahun di mana bakinya ialah 0 apabila dibahagikan dengan 4, tetapi tahun yang boleh dibahagi sama rata dengan 100 tetapi tidak dengan 400 bukanlah tahun lompat. Oleh itu, kita boleh menggunakan penyata bersyarat dalam PHP untuk menentukan sama ada tahun tertentu ialah tahun lompat dan dengan itu mengira bilangan hari dalam setahun.

Berikut ialah kod PHP:

function countDaysInYear($year) {
  if ($year % 4 == 0) {
    if ($year % 100 == 0 && $year % 400 != 0) {
      return 365;
    } else {
      return 366;
    }
  } else {
    return 365;
  }
}

echo countDaysInYear(2021);  // 输出 365
echo countDaysInYear(2020);  // 输出 366

Fungsi countDaysInYear dalam kod di atas menerima tahun sebagai parameter dan mengembalikan bilangan hari dalam tahun itu. Di dalam fungsi, kami mula-mula menggunakan operator % untuk menentukan sama ada tahun itu adalah tahun lompat. Jika tahun itu dibahagikan dengan 4, ia adalah tahun lompat, jika tidak ia adalah tahun biasa.

Jika ia adalah tahun lompat, kita juga perlu menentukan sama ada tahun itu boleh dibahagikan dengan 100 tetapi tidak boleh dibahagikan dengan 400. Jika ini berlaku, ia bukan tahun lompat dan bilangan hari ialah 365, sebaliknya ia adalah tahun lompat dan bilangan hari ialah 366.

  1. Cara mengira hari dalam setahun untuk mana-mana hari

Apabila kita mempunyai tarikh tertentu, kita juga boleh menggunakan PHP untuk mengira hari Hari apa tahun ini? Pengiraan ini memerlukan penggunaan fungsi strtotime dan date dalam PHP.

Mari kita bincangkan tentang fungsi strtotime dahulu, yang boleh menukar tarikh teks (seperti "sekarang", "2021-07-12", dll.) ke dalam cap waktu Unix. Cap waktu Unix ialah bilangan saat dari 1 Januari 1970 00:00:00 UTC hingga tarikh input.

Kita boleh menggunakan fungsi strtotime untuk menukar tarikh semasa kepada cap waktu Unix, kemudian mengira perbezaan masa dari 1 Januari tahun ini, dan akhirnya menambah 1 untuk mendapatkan tarikh langit tahun ini.

Berikut ialah kod PHP:

function getDayOfYear($date) {
  $now = strtotime($date);
  $start = strtotime(date('Y', $now) .'-01-01');
  return floor(($now - $start) / (60 * 60 * 24)) + 1;
}

echo getDayOfYear('2021-07-12');  // 输出 193

Fungsi getDayOfYear dalam kod di atas menerima rentetan tarikh sebagai parameter dan mengembalikan hari dalam tahun tarikh itu.

Di dalam fungsi, kami mula-mula menukar rentetan tarikh itu kepada cap waktu Unix menggunakan fungsi strtotime. Kemudian gunakan fungsi date untuk menukar 1 Januari tahun semasa kepada cap waktu Unix.

Seterusnya, kami mengira perbezaan masa antara tarikh semasa dan 1 Januari, dan mendapatkan bilangan hari. Kerana kita ingin mengira bilangan hari bermula dari 1 Januari, kita perlu menambah 1 pada bilangan hari ini.

  1. Ringkasan

Dalam artikel ini, kami memperkenalkan cara menggunakan PHP untuk mengira bilangan hari dalam tahun tertentu dan sebarang tarikh dalam tahun Hari pertama bulan. Pengiraan ini mungkin tidak biasa digunakan dalam sesetengah senario, tetapi untuk pengaturcara, menulis fungsi sedemikian juga boleh meningkatkan keupayaan pengekodan mereka dan meningkatkan kotak alat mereka.

Atas ialah kandungan terperinci Bagaimana untuk mengira bilangan hari dalam tahun tertentu dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn