php自定义时间函数使用,php自定义函数及内部函数----时间日期函数

时间戳:UNIX时间戳是保存日期和时间的一种紧凑简洁的方法,是大多数UNIX系统中保存当前日期和时间的一种方法,也是在大多数计算机语言中表示日期和时间的一种标准格式。UNIX时间戳是从1970年1月1日0点(UTC/GMT的午夜)开始起到当前时间所经过的秒数。

(1)date() 函数

该函数将时间戳格式化为更易读的日期和时间。

语法:date( string $format [, int $timestamp ] );$timestamp是可选的,默认是time()。

echo "今天是 " . date("Y/m/d") . "
"; //输出:今天是 2018/12/05

echo "今天是 " . date("Y.m.d") . "
"; //输出:今天是 2018.12.05

echo "今天是 " . date("Y-m-d") . "
"; //输出:今天是 2018-12-05

echo "今天是 " . date("l") . "
"; //输出:今天是 Wednesday

echo date("Y-m-d",1544009310); //输出: 2018-12-05

(2)time()

该函数返回当前的时间戳。

echo "当前时间为:".date("Y-m-d H:i:s A")."
";//输出:当前时间为:2018-12-05 11:37:20 AM

echo "当前时间的时间戳为:".time()."
"; //输出:当前时间的时间戳为:1544010043

echo "一天之后的时间为:".date("Y-m-d H:i:s A", time()+24*60*60)."
";

//输出:一天之后的时间为:2018-12-06 11:37:20 AM

echo "一周之后的时间为:".date("Y-m-d H:i:s A", time()+7*24*60*60)."
";

//输出:一周之后的时间为:2018-12-12 11:37:20 AM

echo "30天之后的时间为:".date("Y-m-d H:i:s A", time()+30*24*60*60)."
";

//输出:30天之后的时间为:2019-01-04 11:37:20 AM

(3)maketime()

创建时间的Unix时间戳。

mktime(hour,minute,second,month,day,year)

$d=mktime(9, 12, 31, 6, 10, 2015);echo "创建日期是 " . date("Y-m-d h:i:sa", $d); //输出:创建日期是 2015-06-10 09:12:31am

(4)strtotime()

用字符串来创建日期。

$d=strtotime("10:38pm December 15 2018");echo "创建日期的时间戳是 " .$d; //输出:创建日期的时间戳是 1544913480

echo "创建日期是 " . date("Y-m-d h:i:sa", $d) . "
"; //输出:创建日期是 2018-12-15 10:38:00pm

$d=strtotime("tomorrow");echo date("Y-m-d h:i:s", $d) . "
"; //输出:2018-12-06 12:00:00

$d=strtotime("next Saturday");echo date("Y-m-d h:i:sa", $d) . "
";//输出:2018-12-08 12:00:00am

$d=strtotime("+3 Months");echo date("Y-m-d h:i:sa", $d) . "
";//输出:2019-03-05 11:52:55am

在实际的项目开发中也会经常用到时间日期函数。

比如我在做项目的时候,会用到选择时间的日历插件 laydate.js 。用户可以直接选择时间,生成的时间返回给后台,格式是提前就可以规定好的。

开始时间

var start ={

elem: '#starttime',format: 'YYYY-MM-DD ',

min: '2018-06-16 23:59:59', //设定最小日期为当前日期

max: '2099-06-16 23:59:59', //最大日期

istime: true,istoday: false,choose: function(datas){end.min = datas; //开始日选好后,重置结束日的最小日期

end.start = datas; //将结束日的初始值设定为开始日

}

};

laydate(start);var end ={

elem: '#stoptime',format: 'YYYY-MM-DD ',

min: '2018-06-16 23:59:59', //设定最小日期为当前日期

max: '2099-06-16 23:59:59', //最大日期

istime: true,istoday: false,choose: function(datas){

start.max = datas; //结束日选好后,重置开始日的最大日期

}

};

laydate(end);

可以看出这里用的格式是 format: 'YYYY-MM-DD ',最后生成的日期也是形如2018-12-05 这样的形式。我们将生成的这个时间通过 strtotime() 函数转换为时间戳存到数据库当中。此时,数据库的时间是精确到秒级别,即一共十位数字。但是,在使用时间js插件时,我们会通过 下面的形式将格式化日期转化为时间戳,但是这里是精确到毫秒级,即13位。

var timestamp = (new Date(starttime.replace(/-/g, '/'))).valueOf(); //13位数字,精确到毫秒

此时,要么将数据库中的时间乘以1000,要么将js转化的时间除以1000,使得两者一致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值