我勒个去,难道我发现了php的bug?计算下个月最后一天的问题!
话不多说,直接上代码:
$BeginDate="2015-05-31";//新的获取指定月份的最后1天echo date("Y-m-t",strtotime("+1 months",strtotime($BeginDate)));
根据经验,计算结果应该是:2015-06-30
但是实际运行结果不是,大家请试试,并求教大家这是为啥~~~~搞晕了我了
另:如果把开始时间设置为2015-05-30计算结果是正确的
回复讨论(解决方案)
$BeginDate="2015-05-31";echo date("Y-m-d t",strtotime("+1 months $BeginDate"));
有什么问题吗?
5月31日加一个月(6月是30天)所以就是7月1日,7月的最后一天不就是31日吗
看来是你的经验出问题了
哦,学习了
我还以为+1 months就是当月的下一个月
如果这样我认为还是php有bug,这种情况不应该进1位,而是应该返回6月的最后一天
你理解出错了!!
获取下个月最后一天有另外的语法的。
呵呵,加一个月,肯定是7月1日。
如果按照你的逻辑,加一天那不还得等于 5月31日?
bug?是你没把逻辑处理好
取月末我一般用 下个月1日再减1天
自己改了下算法,算是很好的解决了这个问题
虽然有很多方法,我还是坚持认为这是PHP的一个bug,如同一楼说的,5月份有31天那么+1 months就是6月31,但是6月份有30天,所以结果是7月1号,那么这个strtotime的+1 months就是bug!
自己改的方法是:
$begindate="2015-05-31";$enddate=date("Y-m-01",strtotime($begindate));//获得月初$enddate=date("Y-m-t 23:59:59",strtotime("$enddate +1 month"));//月初加1 month然后计算月末最后一天
$BeginDate="2015-05-31";echo date("Y-m-d t",strtotime("+1 months $BeginDate"));
有什么问题吗?
5月31日加一个月(6月是30天)所以就是7月1日,7月的最后一天不就是31日吗
看来是你的经验出问题了
请问PHP的加一个月是怎么计算的?5月31号加一个月的话就是简单的5月+1=6月31号?然后6月31号不存在所以计算结果是7月31号?
如果5月31号加一天就是5月32号,但是5月32号不存在就是6月1号?
我这样理解对吗?
是的
不过请你注意:这不是 php 的规则,而是英语里时间计算的规则

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Alipay Php ...

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Artikel membincangkan ciri -ciri keselamatan penting dalam rangka kerja untuk melindungi daripada kelemahan, termasuk pengesahan input, pengesahan, dan kemas kini tetap.

Artikel ini membincangkan menambah fungsi khusus kepada kerangka kerja, memberi tumpuan kepada pemahaman seni bina, mengenal pasti titik lanjutan, dan amalan terbaik untuk integrasi dan debugging.

Penerapan prinsip pepejal dalam pembangunan PHP termasuk: 1. Prinsip Tanggungjawab Tunggal (SRP): Setiap kelas bertanggungjawab untuk hanya satu fungsi. 2. Prinsip Terbuka dan Tutup (OCP): Perubahan dicapai melalui lanjutan dan bukannya pengubahsuaian. 3. Prinsip Penggantian Lisch (LSP): Subkelas boleh menggantikan kelas asas tanpa menjejaskan ketepatan program. 4. Prinsip Pengasingan Antara Muka (ISP): Gunakan antara muka halus untuk mengelakkan kebergantungan dan kaedah yang tidak digunakan. 5. Prinsip Inversi Ketergantungan (DIP): Modul peringkat tinggi dan rendah bergantung kepada abstraksi dan dilaksanakan melalui suntikan ketergantungan.

Menghantar data JSON menggunakan perpustakaan Curl PHP dalam pembangunan PHP, sering kali perlu berinteraksi dengan API luaran. Salah satu cara biasa ialah menggunakan perpustakaan curl untuk menghantar post ...

Bagaimana untuk menetapkan keizinan UnixSocket secara automatik selepas sistem dimulakan semula. Setiap kali sistem dimulakan semula, kita perlu melaksanakan perintah berikut untuk mengubahsuai keizinan UnixSocket: sudo ...
