導航:首頁 > 編程語言 > php時間戳隨機數

php時間戳隨機數

發布時間:2024-07-08 07:38:28

1. php璁塊棶鍦板潃鍚庨潰璺熶竴涓叉暟瀛楁槸鍋氫粈涔堢殑錛

榪欎覆鏁板瓧搴旇ユ槸涓鏃墮棿鎴籌紝杞鎹涓烘椂闂存槸 2019/11/25 16:24:46
榪欎釜鏃墮棿鎴崇被浼間簬闅忔満闀囬檰鏃忔暟鐨勪綔鐢錛岀洰鐨勫氨鏄璁╃綉鍧浜х敓鍙樺寲錛堝疄闄呯綉鍧鐩稿悓錛屼絾鍚庨潰鐨勬暟瀛楁倝鑰愪笉鍚岋紝嫻忚堝櫒浼氣滆鈥濅互涓鴻繖鏄涓嶅悓鐨勭綉鍧錛夛紝浠庤屽己鍒跺埛鏂伴〉闈㈠盡寮婏紙浠庢湇鍔″櫒閲嶆柊涓嬭澆欏甸潰鍐呭癸級錛岃屼笉鏄浠庢湰鍦扮紦瀛樻枃浠朵腑鎻愬彇鍐呭廣

2. 解釋下下面PHP方法

microtime()是時間戳的微秒數;

(double)microtime()是將值雙精度處理;

(double)microtime()* 1000000是六位數字;

mt_srand((double)microtime()* 1000000)是將六位數字作為種子,生成隨機數(自 PHP 4.2.0 起,不再需要用mt_srand() 函數給隨機數發生器播種)

mt_rand(1, 99999)是從1到99999之間生成隨機數

str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT)隨機數如果不足5位,則左邊補0

"P".date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT)結果的形式是P+20180105(日期)+00285(隨機五位數)

3. PHP 的API介面

使用PHP寫api介面是經常做的,PHP寫好介面後,前台就可以通過鏈接獲取介面提供的數據,而返回的數據一般分為兩種情況,xml和json,在這個過程中,伺服器並不知道,請求的來源是什麼,有可能是別人非法調用我們的介面,獲取數據,因此就要使用安全驗證

原理

從圖中可以看得很清楚,前台想要調用介面,需要使用幾個參數生成簽名。

時間戳:當前時間

隨機數:隨機生成的隨機數

口令:前後台開發時,一個雙方都知道的標識,相當於暗號

演算法規則:商定好的運算規則,上面三個參數可以利用演算法規則生成一個簽名。前台生成一個簽名,當需要訪問介面的時候,把時間戳,隨機數,簽名通過URL傳遞到後台。後台拿到時間戳,隨機數後,通過一樣的演算法規則計算出簽名,然後和傳遞過來的簽名進行對比,一樣的話,返回數據。

演算法規則

在前後台交互中,演算法規則是非常重要的,前後台都要通過演算法規則計算出簽名,至於規則怎麼制定,看你怎麼高興怎麼來。

我這個演算法規則是

4. 鐢╬hp鍐欓殢鏈哄嚱鏁扮殑渚嬪瓙

緇忓父鎯崇煡閬撴庝箞鐢熸垚闅忔満鏁幫紝涓嬮潰璁茶插疄鐜版柟娉曘傚叾瀹炲氨鏄鐢╬hp甯︾殑鍑芥暟鑾峰彇闅忔満鏁幫紝閫氳繃瀹氫箟鍑芥暟鑾峰彇榪欎簺闅忔満鏁幫紝鎷兼帴璧鋒潵鍗沖彲銆傝呮愰珮涓嬮潰緇欏嚭綆鍗曞疄渚嬨
鍏堝啓濂借繖涓鍑芥暟錛 function getRandomString($len, $chars=null) { if (is_null($chars)){ $chars = ""; } mt_srand(10000000*(double)microtime()); for ($i = 0, $str = '', $lc = strlen($chars)-1; $i $len; $i++){ $str .= $chars[mt_rand(0, $lc)]; } return $str; }
璇磋疆緹℃槑錛1.srand鏄縐嶅瓙錛宮t_srand灝辨槸縐嶅瓙鍑芥暟錛 2. microtime()榪斿洖浜嗕袱涓鍊礆細褰撳墠姣縐掑拰鏃墮棿鎴籌紝鎴戜滑瑕佹彁鍙栭殢鏈烘暟錛屽彧鑳戒粠姣縐掍腑鍙栦竴涓闅忔満鏁伴栧昂錛(double)microtime()灝卞彧榪斿洖褰撳墠鐨勬縐掑箋 microtime()鏄浠ョ掍負鍗曚綅鐨勬縐掓暟錛屽洜鑰屽奸兘鏄灝忔暟錛屼箻浠10000000灝嗗叾鎹㈢畻涓烘暣鏁
渚嬪傞殢鏈虹敓鎴 2 浣 瀛楁瘝鍜屾暟瀛楃粍鍚 鍙闇璋冪敤鍑芥暟 騫朵紶鍙2鍗沖彲銆 娣誨姞浠g爜錛 echo getRandomString(2);
鏁堟灉鍥撅細

5. php怎麼取一年後的時間戳

這個很簡單啊,教你使用一個函數:strtotime("next year");這個函數能將任何英文文本的日期時間描述解析為時間戳。

6. PHP 鐢熸垚浜嗕竴涓12鏈熺殑璐﹀崟銆

鍩烘湰鎬濊礬md5鍔犲瘑鍜岀敓鎴32浣嶇殑瀛楃︿覆mt_rand鐢熸垚鎸囧唽妗愬畾鑼冨洿鐨勫窞妗ュ潶闅忔満鏁皌ime鍙鑾峰緱鏃墮棿鎴崇敤闅忔満鏁+褰撳墠鏃墮棿鎴沖彲浠ヨ幏寰楄緝涓嶄細閲嶅嶇殑闅忔満娑堝閥鏁頒唬鐮佸備笅錛$rand=md5(time().mt_rand(0,1000));

7. PHP的常用系統函數有哪些

PHP自帶了大量的系統函數,使用這些函數可以完成大部分的任務。常用的有數學運算函數和日期時間函數。

1.數學運算函數:

數學運算是程序中最常執行的功能之一,PHP提供了很多系統函數實現運算功能,無須安裝、編譯和配置便可以直接使用。下表列出了常用的數學函數:

函數名稱

功能描述

函數名稱

功能描述

abs()

絕對值

is_finite()

判斷是否為有限值

acos()

反餘弦

is_infinite()

判斷是否為無限值

acosh()

反雙曲餘弦

is_nan()

判斷是否為合法數值

asin()

反正弦

lcg_value()

組合線性同餘發生器

asinh()

反雙曲正弦

log10()

以10為底的對數

atan2()

兩個參數的反正切

log()

自然對數

atan()

反正切

max()

最大值

atanh()

反雙曲正切

min()

最小值

base_convert()

在任意進制之間轉換數字

mt_getrandmax()

顯示隨機數的最大可能值

bindec()

二進制轉換為十進制

mt_rand()

生成更好的隨機數

ceil()

進一法取整

mt_sran()

播下一個更好隨機數種子

cos()

餘弦

octdec()

八進制轉換為十進制

cosh()

雙曲餘弦

pi()

圓周率

decbin()

十進制轉換為二進制

pow()

指數表達式

dechex()

十進制轉換為十六進制

rad2deg()

將弧度轉換為相應的角度值

decoct()

十進制轉換為八進制

rand()

產生一個隨機數

deg2rad()

將角度轉換為弧度

round()

對浮點數四捨五入

exp()

計算e的指數

sin()

正弦

floor()

捨去法取整

sinh()

雙曲正弦

fmod()

返回除法的浮點數余數

sqrt()

平方根

getrandmax()

顯示隨機數最大的可能值

srand()

播下隨機數發生器種子

hexdec()

十六進制轉換為十進制

tan()

正切

hypot()

計算直角三角形的斜邊長度

tanh()

雙曲正切

注意:這些數學函數僅能處理計算機中integer和float范圍的值。
示例:產生隨機密碼的的函數
function CreatePassword($length=6) //生成密碼函數,默認6位
{
$dictionary=」」; //密碼字典
$maxChar=strlen($dictionary); //獲取字典長度
$password=」」;
for($i=0; $i<$length; $i++) //隨機生成每一位
{
$password.=$dictionary[rand(0, $maxChar)]; //產生隨機數,再從字典取字母
}
return $password;
}

2.日期和時間運算:

PHP提供了豐富的日期和時間方面運算的函數。

1)UNIX時間戳:

時間戳(Timestamp)是源於UNIX系統的時間表示方法,是指從1970年1月1日(00:00:00GMT)起到現在所經過的秒數,因此也稱為UNIX時間戳。
在PHP中使用時間戳的最簡單方式就是調用time()函數,time()函數可以根據當前時間返回一個時間戳的表示法。示例:
echo 「當前時間戳為:」.time();

2)日期函數:

PHP提供的一些常用的日期函數。
①date()函數:
date()函數用於格式化一個本地日期和時間。語法格式為:
string date(string $format [, int $timestamp])
返回將整數$timestamp按照$format給定格式而產生的字元串。其中,$timestamp參數是可選的,如果沒有給出時間戳,則使用本地當前時間,即time()。
下表列出了$format格式化字元串參數的說明:



說明

返回值

D

月份中的第幾天,有前導零的2位數字

01到31

D

星期中的第幾天,文本表示,3個字母

Mon到Sun

J

月份中的第幾天,沒有前導零

1到31

L

L的小寫字母,表示星期幾的完整文本格式

Sunday到Saturday

N

數字表示的星期中的第幾天

1(表示星期一)到7(表示星期天)

S

每月天數後面的英文後綴,2個字元

st,nd,rd或th。可以和j一起用

W

星期中的第幾天,數字表示

0(表示星期天)到6(表示星期六)

Z

年份中的第幾天

0到366

W

年份中的第幾周,每周從星期一開始

例如:42(當年的第42周)

F

月份,完整的文本格式,例如January

January到December

M

數字表示的月份,有前導零

01到12

M

3個字母縮寫表示的月份

Jan到Dec

N

數字表示的月份,沒有前導零

1到12

t

給定月份所應有的天數

28到31

L

是否為閏年

如果是閏年為1,否則為0

o

年份數字

例如:2016

Y

4位數字完整表示的年份

例如:2016

y

2位數字表示的年份

例如:16

a

小寫的上午和下午值

am或pm

A

大寫的上午和下午值

AM或PM

g

小時,12小時格式,沒有前導零

1到12

G

小時,24小時格式,沒有前導零

0到23

h

小時,12小時格式,有前導零

01到12

H

小時,24小時格式,有前導零

00到23

i

有前導零的分鍾數

00到59

s

秒數,有前導零

00到59

e

時區標識

例如:UTC,GMT,Atlantic/Azores

I

是否為夏令時

如果是夏令時為1,否則為0

O

與格林威治時間相差的小時數

例如:+0200

Z

時差偏移量的秒數

-43200到43200

c

ISO8601格式的日期

2011-05-12T15:19:21+00:00

r

RFC822格式的日期

例如:Thu, 21 Dec 2011 06:07:08 +0200

U

從January 1 1970 00:00:00開始至今的秒數

與time()函數相同

示例:
$today=date(「m/d/y」); //結果為:07/19/12
$today=date(「F j, Y, g:i a」); //結果為:July 19, 2012, 9:07 am
$today=date(「Y年n月j日」); //結果為:2012年7月19日
$today=date(「Y-m-d H:i:s」); //結果為:2012-07-19 09:07:32
$today=date(「D M j G:i:s T Y」); //結果為:Thu Jul 19 9:07:32 CST 2012
$today=date(『i t i s t h e jS d a y』); //結果為:07 31 07 32 31 09 Asia/Shanghai 19th 19 am 12
$today=date(『\i\t \i\s \t\h\e jS \d\a\y』); //結果為:it is the 19th day
$today=date(『H:m:s \m \i\s\ \m\o \h』); //結果為:09:07:32 m is month
②gmdate()函數:
gmdate()函數實現與date()函數相同的功能,不同的是gmdate()函數返回的時間是格林威治標准時間(GMT)。語法格式為:
string gmdate(string $format [, int $timestamp])
③getdate()函數:
getdate()函數用於獲取指定的日期和時間信息。語法格式為:
array getdate([int $timestamp])
如果沒有指定時間戳$timestamp,則使用系統當前的本地時間。getdate()函數返回一個數組,數組中的每個元素代表日期和時間中的特定組成部分。下表列出了返回數組中鍵名的說明:

鍵名

說明

返回值例子

seconds

秒的數字表示

0到59

minutes

分鍾的數字表示

0到59

hours

小時的數字表示

0到23

mday

月份中的第幾天的數字表示

1到31

wday

星期中的第幾天的數字表示

0(表示星期天)到6(表示星期六)

mon

月份的數字表示

1到12

year

4位數字表示的完整年份

例如:2016

yday

一年中的第幾天的數字表示

0到365

weekday

星期幾的完整文本表示

Sunday到Saturday

month

月份的完整的文本表示

January到December

0

自從UNIX紀元開始至今的秒數

和time()的返回值類似,是一個時間戳

示例:
<?php
$today=getdate();
print_r($today);
printf(「今天是%s年%s月%s日 星期%s \n」, $today[「year」], $today[「mon」], $today[「mday」], $today[「wday」]);
printf(「現在時間是%s時%s分%s秒」, $today[「hours」], $today[「minutes」], $today[「seconds」]);
?>
執行後的結果為:
Arrar
(
[seconds]=>15
[minutes]=>37
[hours]=>9
[mday]=>19
[wday]=>4
[mon]=>7
[year]=>2016
[yday]=>200
[weekday]=>Thursday
[month]=>July
[0]=>1342661835
)
今天是2016年7月19日 星期4
現在時間是 9時37分15秒
④checkdate()函數:
checkdate()函數用於檢查一個日期是否有效,有效則返回true,否則返回false。語法格式為:
bool checkdate(int $month, int $day, int $year)
當滿足如下條件時,checkdate()函數將認為是一個有效的日期:
·$year的值是從1到32767
·$month的值是從1到12
·$day的值在給定的$month所應該具有的天數范圍之內,包括閏年情況
示例:
echo checkdate(2,29,2012)?」有效」:」無效」;

2)時間函數:

①time()函數:
time()函數使用方法非常簡單,沒有參數調用後返回當前日期和時間的UNIX時間戳。語法格式為:
int time(void)
示例:
$next50day=time()+(50*24*60*60); //計算50天以後的日期
②mktime()函數:
mktime()函數的作用與time()函數相同,都可以返回一個時間戳表示的時間。不同的是,在mktime()函數中可以指定具體的日期和時間。語法格式為:
int mktime([int $hour],[int $minute],[int $second],[int $month], [int $day],[int $year])
上述參數列表從右向左順序省略,任何省略的參數會被設置為本地日期和時間的當前值。如果指定的時間無法表示,則返回false。mktime()函數在做日期計算和驗證方面很有用。示例:
$day1=mktime(0,0,0,12,25,2012);
$day2=mktime(0,0,0,10,1,2012);
$days=($day1-$day2)/(24*60*60); //根據時間戳計算出相差的天數
③strtotime()函數:
strtotime()函數用於將可閱讀的英文日期/時間字元串轉換成UNIX時間戳。語法格式:
int strtotime(string $time[, int $now])
其中,$time參數表示要被轉換的字元串,$now表示計算返回值的時間戳。如果沒有提供$now參數,將使用系統的當前時間。strtotime()函數成功時返回時間戳,否則返回false。
④microtime()函數:
microtime()函數調用後將返回當前UNIX時間戳和微秒數。語法格式為:
mixed microtime([bool $get_as_float])
這里的可選參數$get_as_float是一個布爾值,如果為true將返回一個浮點數。默認不帶參數時將以「msec sec」格式返回一個字元串,其中msec是微秒部分,sec是UNIX時間戳。

8. PHP 產生隨機時間

用格林威治時間 也就是time() 整型的時間 在兩個整數之間求隨機數

閱讀全文

與php時間戳隨機數相關的資料

熱點內容
如何判斷網路伺服器正常 瀏覽:649
路由器搭橋遠端伺服器地址是什麼 瀏覽:515
編譯動態庫時會連接依賴庫嗎 瀏覽:707
淘寶手機加密是隨機的嗎 瀏覽:672
解壓包子怎麼裝飾 瀏覽:585
四個數湊24演算法 瀏覽:676
哪一種不是vi編譯器的模式 瀏覽:168
xp在此處打開命令窗口 瀏覽:128
代碼編譯運行用什麼軟體 瀏覽:997
動態庫在程序編譯時會被連接到 瀏覽:760
python超簡單編程 瀏覽:259
獲取命令方 瀏覽:976
怎樣製作文件夾和圖片 瀏覽:60
調研編譯寫信息 瀏覽:861
python馮諾依曼 瀏覽:419
同時安裝多個app有什麼影響 瀏覽:254
奧術殺戮命令宏 瀏覽:184
用sdes加密明文字母e 瀏覽:361
單片機原理及應用試題 瀏覽:425
易語言開啟指定文件夾 瀏覽:40