导航:首页 > 编程语言 > 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时间戳随机数相关的资料

热点内容
联通深蓝卡都包含什么app 浏览:263
如何判断网络服务器正常 浏览: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