Pertanyaan Bagaimana cara menggunakan PHP untuk mendapatkan tahun sekarang?


Saya ingin memberikan pemberitahuan hak cipta di footer situs web, tapi saya pikir itu sangat norak untuk tahun ini menjadi ketinggalan zaman. Bagaimana saya akan membuat pembaruan tahun secara otomatis dengan PHP 4 dan PHP 5?


742
2017-09-15 15:34


asal


Jawaban:


Anda dapat menggunakan keduanya tanggal atau strftime. Dalam hal ini saya akan mengatakan tidak masalah setahun adalah setahun, tidak peduli apa (kecuali ada lokal yang memformat tahun secara berbeda?)

Sebagai contoh:

<?php echo date("Y"); ?>

Di samping catatan, ketika memformat tanggal dalam PHP, itu penting ketika Anda ingin memformat tanggal Anda di lokal yang berbeda dari default Anda. Jika demikian, Anda harus menggunakan setlocale dan strftime. Menurut php manual pada tanggal:

Untuk memformat tanggal dalam bahasa lain,   Anda harus menggunakan setlocale () dan   strftime () bukan fungsi   tanggal().

Dari sudut pandang ini, saya pikir akan lebih baik menggunakan strftime sebanyak mungkin, jika Anda bahkan memiliki kemungkinan jauh untuk melokalkan aplikasi Anda. Jika itu bukan masalah, pilih yang paling Anda sukai.


846
2017-09-15 15:45



<?php echo date("Y"); ?>

498
2017-09-15 15:35



Versi super malas saya menampilkan baris hak cipta, yang secara otomatis tetap diperbarui:

&copy; <?php 
$copyYear = 2008; 
$curYear = date('Y'); 
echo $copyYear . (($copyYear != $curYear) ? '-' . $curYear : '');
?> Me, Inc.

Tahun ini (2008), ia akan berkata:

© 2008 Me, Inc.

Tahun depan, ia akan berkata:

© 2008-2009 Me, Inc.

dan selamanya tetap diperbarui dengan tahun berjalan.


Atau (PHP 5.3.0+) cara ringkas untuk melakukannya menggunakan fungsi anonim sehingga Anda tidak memiliki variabel yang bocor dan tidak mengulang kode / konstanta:

&copy; 
<?php call_user_func(function($y){$c=date('Y');echo $y.(($y!=$c)?'-'.$c:'');}, 2008); ?> 
Me, Inc.

195
2017-09-15 22:51



Dengan judul PHP dalam arah yang lebih berorientasi objek, saya terkejut tidak ada orang di sini yang mereferensikan built-in DateTime kelas:

$now = new DateTime();
$year = $now->format("Y");

atau satu-liner dengan akses anggota kelas pada Instansiasi (php> = 5.4):

$year = (new DateTime)->format("Y");

50
2018-01-02 18:03



http://us2.php.net/date

echo date('Y');

27
2017-09-15 15:36



strftime("%Y");

aku cinta strftime. Ini adalah fungsi yang bagus untuk meraih / menggabungkan kembali beberapa tanggal / waktu.

Plus itu menghormati pengaturan lokal yang fungsi tanggal tidak dilakukan.


25
2017-09-15 15:35



Yang ini memberi Anda waktu lokal:

$year = date('Y'); // 2008

Dan yang satu ini UTC:

$year = gmdate('Y'); // 2008

13
2017-09-15 15:44