Saya tidak dapat menetapkan tahun di bawah 1899 untuk sebuah pos. Jika saya mengatur tahun di bawah 1899 itu diatur ke tahun berjalan secara otomatis.
Saya telah membeli tema Timeline dan bertanya di forum dukungan mereka. Mereka menjawab:
Ini terdengar seperti batasan yang dibuat oleh penyedia hosting Anda. Tidak ada dalam tema yang mencegah tanggal yang Anda tetapkan - seperti yang Anda lihat, demo memiliki posting menggunakan tanggal di tahun 1400-an. Coba hubungi penyedia hosting Anda dan lihat apakah mereka memiliki wawasan tentang cara mengatasinya.
date
date-time
post-editor
Spartan
sumber
sumber
WP_DEBUG
dan edit pesan kesalahan ke pertanyaan Anda. Saya mungkin telah membuatnya tampak seperti itu, tetapi tautan ke versi tema yang berfungsi benar-benar tidak banyak membantu.Jawaban:
Ini sebenarnya bukan jawaban, hanya upaya untuk menemukan konteks spesifik untuk masalah ini. Silakan instal plugin berikut di situs Anda, cobalah untuk mengatur tiga tanggal dan menambahkan hasil Anda ke yang kedua
<pre>
pada tabel di bawah ini.Intisari dari Plugin dapat diperiksa di sini .
0999
,, klik Perbarui . Apakah disimpan atau diubah ke tanggal saat ini?1899
,2020
dan2039
.sumber
Pertanyaan dan harapan
Sementara bentuk literal dari pertanyaan ini praktis dalam konteksnya (tahun 1899), ia agak kabur dalam pengertian teoretis. Berapa umur? Seberapa jauh ke masa lalu kita mungkin ingin pergi? Bagaimana dengan masa depan?
Sejak WordPress dimulai sebagai mesin blogging, dalam hal itu arti kontekstual itu berkembang untuk menangani rentang waktu berikut:
Ketika penggunaan WordPress berevolusi menjadi aplikasi non-blogging, proyek-proyek tersebut (biasanya sejarah dan seni seperti yang saya lihat dari laporan) mulai mengalami berbagai masalah dengan tanggal di luar rentang ini.
Untuk tujuan penelitian saya, saya telah merumuskan pertanyaan-pertanyaan berikut:
Keterbatasan platform
Karena WordPress adalah aplikasi PHP dan menggunakan MySQL untuk penyimpanan data, itu tunduk pada batasan mereka.
MySQL
WordPress menyimpan tanggal posting dalam
post_date
kolomDATETIME
tipe di MySQL.Menurut dokumentasi , tipe ini mendukung tahun 1000 hingga 9999 :
Namun ia juga mengatakan bahwa nilai sebelumnya mungkin berfungsi, tidak menyebutkan nilai selanjutnya:
Sementara secara empiris saya telah mengamati nilai-nilai di luar jangkauan kerja, ini adalah anekdotal dan jatuh dari kondisi keandalan kami.
PHP
Dalam pemrograman PHP, representasi timestamp tanggal Unix banyak digunakan. Menurut dokumentasi untuk tujuan kami (PHP 5.2+ dan lingkungan 32 bit umum) mendukung tahun (secara penuh) 1902 hingga 2037 :
Selain itu
Date/Time
penanganan berbasis yang lebih baru adalah 64 bit dan memiliki kisaran sekitar -292 miliar hingga 292 miliar tahun , yang mungkin melebihi kebutuhan manusia saat ini.Keterbatasan WordPress
WordPress memperkenalkan dan mewarisi beberapa batasan tambahan dalam basis kodenya.
Aliran data
Dari sudut pandang alur kerja pengguna dasar ada dua yang diproses terkait dengan tanggal:
Perhatikan bahwa ini adalah proses yang sepenuhnya berbeda dan independen secara teknis. Seperti dijelaskan lebih lanjut rentang mereka tidak tumpang tindih dan menyimpan tanggal yang benar tidak sama dengan kemampuan untuk membacanya dengan benar di lingkungan WordPress.
Batas eksplisit
_wp_translate_postdata()
memproses tahun (diajukan sebagai nomor berbeda dari formulir) dan:wp_checkdate()
, yang memanggil PHP aslicheckdate()
, yang memberlakukan batas 1 hingga 32767Batas implisit
strtotime()
Fungsi PHP digunakan beberapa kali dan tunduk pada cap waktu Unix yang disebutkan di atas, pada level terendahmysql2date()
yang memengaruhi semua pembacaan tanggal dari basis data, rentang 1902 hingga 2037 yang diwarisiget_gmt_from_date()
, yang diperkirakan tahun([0-9]{1,4})
, membatasi 1 hingga 9999 , kemungkinan kuat pemrosesan serupa di fungsi lain yang akan memerlukan audit kode yang lebih teliti untuk dihitungKemungkinan solusi
wp_checkdate()
memilikiwp_checkdate
filter, yang memungkinkan untuk mengganti pemeriksaan validasi inidate_i18n()
yang memilikidate_i18n
filter, secara teoritis memungkinkan untuk sepenuhnya mencegat dan memproses kembali output dari tanggal ke antarmuka namun menantang jika fungsi dilewatkan sudah di luar jangkauan (false
) input timestampKesimpulan
Untuk tujuan praktis dan portabilitas data, kisaran tanggal posting WordPress tampaknya sama dengan 32 bit cap waktu Unix dan terdiri dari tahun 1902 hingga 2037 secara inklusif .
Untuk setiap operasi tanggal posting keluar dari lingkungan jangkauan ini harus diaudit (kisaran 64 bit cap waktu Unix, de-facto berfungsi MySQL atau penyimpanan database alternatif untuk nilai-nilai). Untuk rentang lebih jauh (di bawah 1000, di atas 9999 ) sejumlah besar kode kustom mungkin diperlukan.
Untuk setiap implementasi tanggal sewenang-wenang, masuk akal untuk:
Date/Time
kode berbasis kustom sepenuhnya dan / atau fungsi WordPress diaudit untuk tidak terpengaruh oleh batas cap waktu UnixTempat uji kode
Kode dan set tahun pilihan tangan berikut telah digunakan untuk penelitian di atas dan pengujian kesimpulan:
sumber
r()
?