Rumah pembangunan bahagian belakang tutorial php php的日期处理函数及uchome的function_coomon中日期处理函数的研究_PHP教程

php的日期处理函数及uchome的function_coomon中日期处理函数的研究_PHP教程

Jul 21, 2016 pm 03:32 PM
function php kod fungsi berurusan dengan salinan tarikh daripada Penyelidikan

复制代码 代码如下:

echo mktime(11,25,0,9,5,2010);//和time一样的
echo microtime();
echo mktime(0,0,0,1,1,1970);
?>

这里面输出分别是1283657290、1283657100、0.88533200 1283657290、-25200。从最后一个值看,我们知道这里返回的时间戳是经过了时区调整的,也就是我在中国的1970年1月1日0点,格林尼治还没有到0点呢,于是这里的时间会是负数且整好等于-8*3600。

再看
复制代码 代码如下:

echo date ("H i l d F" ,1283657100);
echo gmdate("H i l d F",1283657100);
echo strftime("%Hh%M %A %d %b" ,1283657100);
//strftime()工作的方式和date()没有什么不同,除了特殊格式化字符的前面必须添加一个百分号%。
echo strtotime("2010-9-5 11:25:00");
var_dump(getdate (time()));
?>

这里的输出是11 25 Sunday 05 September、03 25 Sunday 05 September、11h25 Sunday 05 Sep、1283657100、array(11) {
["seconds"]=>
int(9)
["minutes"]=>
int(39)
["hours"]=>
int(11)
["mday"]=>
int(5)
["wday"]=>
int(0)
["mon"]=>
int(9)
["year"]=>
int(2010)
["yday"]=>
int(247)
["weekday"]=>
string(6) "Sunday"
["month"]=>
string(9) "September"
[0]=>
int(1283657949)
}

主要看第三个输出,这里输出的是在中国的2010年9月5日11点25分的时候 格林尼治的时间是多少。这里也要计入时差的。而且这里还有一个很奇妙的就是只有gmdate没有发出警告,其余的都有警告说不能依赖于系统的时区。想象也是,因为gmdate算出来的只是格林尼治的时间,就算是系统时区错了,一加一减就又正常了。
复制代码 代码如下:

//时间格式化
function sgmdate($dateformat, $timestamp='', $format=0) {
global $_SCONFIG, $_SGLOBAL;
if(empty($timestamp)) {
$timestamp = $_SGLOBAL['timestamp'];
}
$timeoffset = strlen($_SGLOBAL['member']['timeoffset'])>0?intval($_SGLOBAL['member']['timeoffset']):intval($_SCONFIG['timeoffset']);
$result = '';
if($format) {
$time = $_SGLOBAL['timestamp'] - $timestamp;
if($time > 24*3600) {
$result = gmdate($dateformat, $timestamp + $timeoffset * 3600);
} elseif ($time > 3600) {
$result = intval($time/3600).lang('hour').lang('before');
} elseif ($time > 60) {
$result = intval($time/60).lang('minute').lang('before');
} elseif ($time > 0) {
$result = $time.lang('second').lang('before');
} else {
$result = lang('now');
}
} else {
$result = gmdate($dateformat, $timestamp + $timeoffset * 3600);
}
return $result;
}

我们直接看if($format){}里的东西,首先求得系统当前时间和我传进来的时间(一般是数据库里的时间,如2010-9-4 21:00:00)的差。如果时间差是在一天以内,则直接得出结论比如两小时前,如果是大于1天,则调用gmdate。这里我就是很搞不懂的。为什么要调用这个诡异的函数,而不是直接date($timestamp)呢?这他妈的到底是什么意思阿?
gmdate

When run in Finland (GMT +0200), the first line below prints "Jan 01 1998 00:00:00", while the second prints "Dec 31 1997 22:00:00".
复制代码 代码如下:

echo date("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
?>

也就是说gmdate是考虑过了时差的。这里会输出标准的时间格式,而不是几天前。
接下来着重看uchome的function_common里的函数
复制代码 代码如下:

//字符串时间化
function sstrtotime($string) {
global $_SGLOBAL, $_SCONFIG;
$time = '';
if($string) {
$time = strtotime($string);
if(gmdate('H:i', $_SGLOBAL['timestamp'] + $_SCONFIG['timeoffset'] * 3600) != date('H:i', $_SGLOBAL['timestamp'])) {
$time = $time - $_SCONFIG['timeoffset'] * 3600;
}
}
return $time;
}

别看这个函数很少,但是看得我很吃力。这里是要把一个时间字符串转换为时间戳。比如我这里输入的是2010 9 4 21:08,则$time的值就是这个时间到January 1 1970 00:00:00 GMT的时间差,这里是要考虑什么时差的。$_SGLOBAL[''timestamp]的值其实和$time一样的方法算出来的,但是数值可能有细小的差别。$_SCONFIG['timeoffset']是在config的那个表里面的,目前其值为8。这里有一种情况是系统的时区是对的,或者是不对的,需要通过$_SCONFIG['timeoffset']来检验。gmdate将传入的时间戳(运行程序的地方的时间戳)经过系统的时区来得到此时格林尼治那个地方的时间。如果是系统时区设对了,那么这个正好一加一减,和后面的相等了(其实这里$_SGLOBAL[''timestamp]的数值是无关紧要的)。如果是正常的,那么就不需要改$time,如果是不正常的,那么需要减一下。但是还是那句话,这他妈的到底是什么意思阿?

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/322864.htmlTechArticle复制代码 代码如下: ?php echo time(); echo mktime(11,25,0,9,5,2010);//和time一样的 echo microtime(); echo mktime(0,0,0,1,1,1970); ? 这里面输出分别是1283657290、...
Kenyataan Laman Web ini
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

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)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

See all articles