cari
Rumahpembangunan bahagian belakangtutorial phpstrtotime函数一个很奇怪的问题

var_dump(strtotime('1441185010'));//输出bool(false)var_dump(strtotime('1451382400'));//输出int(13591003898)

很奇怪,为什么这两个的结果不一样呢?


回复讨论(解决方案)

我PHP5.6返回两个false,你的PHP是什么版本。

我PHP5.6返回两个false,你的PHP是什么版本。


我是PHP Version 5.3.3,centos6.4 64位虚拟机,第一个正常输出false,第二个就不对了。
实在奇怪到底是什么问题引起的

不知道你要用来干嘛?
strtotime是将任何英文文本的日期时间描述解析为 Unix 时间戳
echo strtotime('2015/12/11');
如果你要把时间戳转换为日期,用date啊

不知道你要用来干嘛?
strtotime是将任何英文文本的日期时间描述解析为 Unix 时间戳
echo strtotime('2015/12/11');
如果你要把时间戳转换为日期,用date啊



modifier.date_format.php
function smarty_modifier_date_format($string, $format="%b %e, %Y", $default_date=null){    if (substr(PHP_OS,0,3) == 'WIN') {           $_win_from = array ('%e',  '%T',       '%D');           $_win_to   = array ('%#d', '%H:%M:%S', '%m/%d/%y');           $format = str_replace($_win_from, $_win_to, $format);    }    if($string != '') {        return strftime($format, smarty_make_timestamp($string));    } elseif (isset($default_date) && $default_date != '') {        return strftime($format, smarty_make_timestamp($default_date));    } else {        return;    }}


shared.make_timestamp.php
function smarty_make_timestamp($string){    if(empty($string)) {        $string = "now";    }/** 这个判断是我做的一个临时救急解决方案,并没有找到实际原因。    if(strlen((int)$string)==10){        return (int)$string;    }*/    $time = strtotime($string);//此处在处理时间戳的时候发现问题里第一个时间戳正常返回false,但是第二个却返回一个不知道怎么得出来的整型,结果与$string不一致,结果自然不对    if (is_numeric($time) && $time != -1)        return $time;    // is mysql timestamp format of YYYYMMDDHHMMSS?    if (preg_match('/^\d{14}$/', $string)) {        $time = mktime(substr($string,8,2),substr($string,10,2),substr($string,12,2),               substr($string,4,2),substr($string,6,2),substr($string,0,4));        return $time;    }    // couldn't recognize it, try to return a time    $time = (int) $string;    if ($time > 0)        return $time;    else        return time();}



我在使用smarty模板格式化时间的时候,使用这种{$aList[list].inputtime|date_format:"%Y-%m-%d %H:%M:%S"},但是这个时间出现错误,在进一步跟踪错误的过程中发现是smarty是直接把时间戳当做字符串交个一个函数处理,这个函数smarty_make_timestamp内部使用strtotime直接处理该字符串,根据处理结果返回不同值。结果却是部分正确,部分错误,貌似时间分界点是以2015-9-4号,所以很奇怪。

echo date('Y-m-d H:i:s', 1441185010); //2015-09-02 17:10:10
可知 1441185010 是有效的时间戳

strtotime -- 将任何英文文本的日期时间描述解析为 Unix 时间戳
如果你 $time = strtotime($string); 
而 $string 不是 英文文本的日期时间描述 的话,那自然是错误的了
echo date('Y-m-d H:i:s', strtotime('20150902171010')); //2015-09-02 17:10:10
echo date('Y-m-d H:i:s', strtotime('20150902')); //2015-09-02 00:00:00
你的 1441185010 是否能解释成 1441 年 18 月 50 日 10 时 ????

echo date('Y-m-d H:i:s', 1441185010); //2015-09-02 17:10:10
可知 1441185010 是有效的时间戳

strtotime -- 将任何英文文本的日期时间描述解析为 Unix 时间戳
如果你 $time = strtotime($string); 
而 $string 不是 英文文本的日期时间描述 的话,那自然是错误的了
echo date('Y-m-d H:i:s', strtotime('20150902171010')); //2015-09-02 17:10:10
echo date('Y-m-d H:i:s', strtotime('20150902')); //2015-09-02 00:00:00
你的 1441185010 是否能解释成 1441 年 18 月 50 日 10 时 ????



echo date('Y-m-d H:i:s', 1451382400);
//输出2015-12-29 17:46:40
echo date('Y-m-d H:i:s', strtotime('1451382400'));
//输出2400-09-06 14:51:38

echo date('Y-m-d H:i:s', 1441185010); //2015-09-02 17:10:10
可知 1441185010 是有效的时间戳

strtotime -- 将任何英文文本的日期时间描述解析为 Unix 时间戳
如果你 $time = strtotime($string); 
而 $string 不是 英文文本的日期时间描述 的话,那自然是错误的了
echo date('Y-m-d H:i:s', strtotime('20150902171010')); //2015-09-02 17:10:10
echo date('Y-m-d H:i:s', strtotime('20150902')); //2015-09-02 00:00:00
你的 1441185010 是否能解释成 1441 年 18 月 50 日 10 时 ????




我的情况跟直接输出不太一样,我这的情况是根据strtotime的结果来判断是直接返回时间戳还是返回经过strtotime处理过的时间,正常strtotime处理时间戳是返回false的,但是我的情况是部分返回false,比如1441185010,但是1451382400返回的就不是false了。

由于你传递给 strtotime 的是是时间戳,所以即便不是 false 也是不对的
echo date('Y-m-d H:i:s', 13591003898); //1992-05-17 19:26:50

由于你传递给 strtotime 的是是时间戳,所以即便不是 false 也是不对的
echo date('Y-m-d H:i:s', 13591003898); //1992-05-17 19:26:50


好吧,版主,先谢谢你。
我之前说过哦,我的情况并不是直接输出的,而是根据strtotime返回的结果在用date输出。

我现在的问题是为什么
strtotime('1441185010')
是false;

strtotime('1451382400')
却不是false,理论上讲strtotime(10位时间戳)不应该输出false的吗?

那是你的 php 有问题
经测试都是 false

那是你的 php 有问题
经测试都是 false



经测试确实是php版本的问题,5.3的版本出现上述问题,5.4的版本都是false,只是不知这到底是原因?

5.2的版本同样有上述问题,不清楚这到底是bug还是什么

楼主你去看看这个帖子。。。。http://bbs.csdn.net/topics/391822092

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
Pembalakan PHP: Amalan Terbaik untuk Analisis Log PHPPembalakan PHP: Amalan Terbaik untuk Analisis Log PHPMar 10, 2025 pm 02:32 PM

Pembalakan PHP adalah penting untuk memantau dan menyahpepijat aplikasi web, serta menangkap peristiwa kritikal, kesilapan, dan tingkah laku runtime. Ia memberikan pandangan yang berharga dalam prestasi sistem, membantu mengenal pasti isu -isu, dan menyokong penyelesaian masalah yang lebih cepat

Bekerja dengan Data Sesi Flash di LaravelBekerja dengan Data Sesi Flash di LaravelMar 12, 2025 pm 05:08 PM

Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API RESTCurl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API RESTMar 14, 2025 am 11:42 AM

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Respons HTTP yang dipermudahkan dalam ujian LaravelRespons HTTP yang dipermudahkan dalam ujian LaravelMar 12, 2025 pm 05:09 PM

Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

12 skrip sembang php terbaik di codecanyon12 skrip sembang php terbaik di codecanyonMar 13, 2025 pm 12:08 PM

Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

Terangkan konsep pengikatan statik lewat dalam PHP.Terangkan konsep pengikatan statik lewat dalam PHP.Mar 21, 2025 pm 01:33 PM

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

Menyesuaikan/Memperluas Rangka Kerja: Cara Menambah Fungsi Custom.Menyesuaikan/Memperluas Rangka Kerja: Cara Menambah Fungsi Custom.Mar 28, 2025 pm 05:12 PM

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.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.