PHP中使用strtotime函数注意事项
strtotime函数在是大家常用的一个时间日期转换成单位S的一个函数了,但是这个函数有一个细节大家可能没有注意到,就是 使用的时候需要考虑 有31天和 2月份的情况,所以,如果没有考虑这个特殊的情况,那么在每月的31号或者和2月份有关的时间点时候就可能出现开始的那个灵异情况了,这个情况很多朋友都不记得了,但在很多时间这个非常重要,下面举例子来给各位介绍一下。
今天在微博上看到一个小案例,命令行如下:
代码如下 | 复制代码 |
php -r “echo date(‘Y/m’,strtotime(‘-2 months’)) . \”\n\”;” |
输出结果如下:
2013/03
如果把命令行修改成如下:
代码如下 | 复制代码 |
php -r “echo date(‘Y/m’,strtotime(‘-3 months’)) . \”\n\”;” |
输出结果如下:
2013/03
这里就奇怪了,怎么两个月前和三个月前的年月份都是一样的,再看看下面的命令行:
代码如下 | 复制代码 |
php -r “echo date(‘Y/m’,strtotime(‘-3 months’,strtotime(’2013/05/28′))) . \”\n\”;” |
输出结果如下:
2013/02
如果修改命令行为如下:
代码如下 | 复制代码 |
php -r “echo date(‘Y/m’,strtotime(‘-3 months’,strtotime(’2013/05/29′))) . \”\n\”;” |
输出结果如下:
2013/03
下面这个与预期的结果是一样的,现在说说为什么会出现开始的那个奇怪的坑。
strtotime里的months和 month是30天,使用的时候需要考虑 有31天和 2月份的情况,所以,如果没有考虑这个特殊的情况,那么在每月的31号或者和2月份有关的时间点时候就可能出现开始的那个灵异情况,这个算是strtotime的一个坑吧,为了慎重起见,能不用的时候就尽量别去用这个坑人的东东。
PS:以上所有例子都是在Debian6的64位系统下执行,使用命令行方式执行,执行时间是2013-05-30.
上月下月时间不准确
以下有几种方法,可以帮助我们达到预期效果,比如我要返回上个月的月份:
代码如下 | 复制代码 |
echo date('M Y', strtotime('midnight first day of -1 month')); 或者: echo date('M Y', strtotime(date('Y-m-01')) - 86400); |
下方是其他的用途:
代码如下 | 复制代码 |
strtotime('first day of last month');
date_default_timezone_set('Asia/Shanghai'); date('Y年m月',$t), |

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



Apabila membangunkan menggunakan program PHP, anda sering menghadapi beberapa amaran atau mesej ralat. Antaranya, satu mesej ralat yang mungkin muncul ialah: PHPWarning:date()expectsparameter2tobelong,stringgiven. Mesej ralat bermaksud: parameter kedua bagi tarikh fungsi() dijangka menjadi integer panjang (panjang), tetapi yang sebenarnya dihantar kepadanya ialah rentetan (rentetan). Jadi, kita

Jika anda sedang mencari cara untuk membuat dan menamakan fail dan folder secara automatik berdasarkan cap masa sistem, anda telah datang ke tempat yang betul. Terdapat cara yang sangat mudah untuk menyelesaikan tugas ini. Folder atau fail yang dibuat kemudiannya boleh digunakan untuk pelbagai tujuan seperti menyimpan sandaran fail, menyusun fail berdasarkan tarikh, dsb. Dalam artikel ini, kami akan menerangkan dalam beberapa langkah yang sangat mudah cara membuat fail dan folder secara automatik dalam Windows 11/10 dan menamakannya mengikut cap masa sistem. Kaedah yang digunakan adalah skrip kelompok, yang sangat mudah. Harap anda seronok membaca artikel ini. Bahagian 1: Cara membuat dan menamakan folder secara automatik berdasarkan cap masa semasa sistem Langkah 1: Mula-mula, navigasi ke folder induk tempat anda ingin mencipta folder,

1. Pengenalan Kelas Tarikh dalam pakej java.util mewakili masa tertentu, tepat kepada milisaat. Jika kita ingin menggunakan kelas Date kita, maka kita mesti memperkenalkan kelas Date kita. Menulis tahun terus ke dalam kelas Tarikh tidak akan menghasilkan hasil yang betul. Oleh kerana Date in Java dikira dari 1900, jadi selagi anda mengisi parameter pertama dengan bilangan tahun sejak 1900, anda akan mendapat tahun yang anda inginkan. Bulan perlu ditolak dengan 1, dan hari boleh dimasukkan terus. Kaedah ini jarang digunakan, dan kaedah kedua biasa digunakan. Kaedah ini adalah untuk menukar rentetan yang mematuhi format tertentu, seperti yyyy-MM-dd, kepada data jenis Tarikh. Mula-mula, tentukan objek jenis Date Date

Bagaimana untuk mendapatkan perwakilan milisaat tarikh menggunakan kaedah getTime() kelas Tarikh Dalam Java, kelas Tarikh ialah kelas yang digunakan untuk mewakili tarikh dan masa. Ia menyediakan banyak kaedah berguna untuk memanipulasi dan mendapatkan maklumat tentang objek tarikh. Antaranya, kaedah getTime() ialah kaedah penting dalam kelas Date, yang boleh mengembalikan perwakilan milisaat objek tarikh. Seterusnya, kami akan memperincikan cara menggunakan kaedah ini untuk mendapatkan perwakilan milisaat tarikh, dan memberikan contoh kod yang sepadan. Menggunakan kelas Tarikh

Terdapat banyak perpustakaan kalendar dan pustaka tarikh yang sangat baik dalam Python untuk kami gunakan Perpustakaan ini boleh membantu kami mengendalikan operasi berkaitan tarikh dan kalendar. Seterusnya, saya akan memperkenalkan anda kepada beberapa pilihan biasa dan memberikan contoh kod yang sepadan. Pustaka Datetime: Datetime ialah modul pemprosesan tarikh dan masa terbina dalam Python Ia menyediakan banyak kelas dan kaedah berkaitan tarikh dan masa, yang boleh digunakan untuk memproses tarikh, masa, perbezaan masa dan operasi lain. Kod contoh: importdatetime#Dapatkan tarikh semasa

Kelas Stringbuild Memandangkan kandungan objek kelas String tidak boleh diubah, objek String baharu akan dibina setiap kali ia disambung, yang memakan masa dan membazirkan ruang memori Pada masa ini, anda perlu menyelesaikan masalah ini melalui StringBuild kelas yang disediakan oleh Java StringBuilder juga dipanggil jujukan aksara pembolehubah , ia adalah penimbal rentetan yang serupa dengan String, yang boleh dianggap sebagai bekas yang boleh disimpan dalam bekas adalah berubah-ubah. Kaedah pembinaan publicStringBuilder(): mencipta penimbal kosong publicStringBuilder(Stringsr

Saya menghadapi masalah selepas springboot dinaik taraf kepada 2.0, tarikh yang ditemui daripada pangkalan data telah diterima menggunakan Tarikh dan akhirnya dikembalikan terus ke hujung hadapan Ia boleh dipaparkan seperti biasa dalam format yyyy-MM-ddHH:mm:ss dalam Google Chrome. Walau bagaimanapun, tarikh yang dipaparkan dalam penyemak imbas IE adalah "bercelaru" kerana versi springboot1.x mengembalikan cap masa dalam medan Tarikh secara lalai, dan Google dan IE akan menukar cap masa secara automatik kepada yyyy-MM-ddHH:mm:ss ;Selepas springboot2.0, spring secara automatik akan menukar medan Tarikh kepada rentetan UTC (tanpa konfigurasi), jadi tarikh perlu ditukar kepada cap waktu atau y

Artikel ini akan menerangkan secara terperinci tentang pemformatan masa/tarikh tempatan dalam PHP Editor berpendapat ia agak praktikal, jadi saya kongsikan dengan anda sebagai rujukan saya harap anda boleh memperoleh sesuatu selepas membaca artikel ini. PHP Memformat Masa/Tarikh Tempatan Memformat masa dan tarikh tempatan ialah tugas biasa dalam PHP dan boleh dicapai melalui fungsi dan kelas terbina dalam PHP. Fungsi terbina dalam PHP menyediakan beberapa fungsi terbina dalam untuk memformat masa dan tarikh: date(): digunakan untuk memformat masa dan tarikh semasa dan mengembalikan hasil mengikut rentetan format yang disediakan. strftime(): Sama dengan date(), tetapi ia menggunakan fungsi POSIX strftime() untuk menyediakan pilihan pemformatan yang lebih maju. tarikh parameter format
