网站首页 > 技术文章 正文
工作中经常会遇到php获取各种时间的需要,现在特此做些总结。首先需要知道的是在php中获取时间方法是date(),在php中获取时间戳方法有time()、 strtotime()。下面分别说明。
date()格式为:date($format, $timestamp),format为格式、timestamp为时间戳(可选)。
time()返回当前时间的 Unix 时间戳,没有参数。
strtotime($time, $now)将任何英文文本的日期时间描述解析为 Unix时间戳。$time为必填,规定要解析的时间字符串;$now用来计算返回值的时间戳,如果省略该参数,则使用当前时间。
####date()函数字符串格式中各个字母的含义:
a - “am” 或是 “pm”
A - “AM” 或是 “PM”
d - 几日,二位数字,若不足二位则前面补零; 如: “01” 至 “31”
D - 星期几,三个英文字母; 如: “Fri”
F - 月份,英文全名; 如: “January”
h - 12 小时制的小时; 如: “01” 至 “12”
H - 24 小时制的小时; 如: “00” 至 “23”
g - 12 小时制的小时,不足二位不补零; 如: “1” 至 12"
G - 24 小时制的小时,不足二位不补零; 如: “0” 至 “23”
i - 分钟; 如: “00” 至 “59”
j - 几日,二位数字,若不足二位不补零; 如: “1” 至 “31”
l - 星期几,英文全名; 如: “Friday”
m - 月份,二位数字,若不足二位则在前面补零; 如: “01” 至 “12”
n - 月份,二位数字,若不足二位则不补零; 如: “1” 至 “12”
M - 月份,三个英文字母; 如: “Jan”
s - 秒; 如: “00” 至 “59”
S - 字尾加英文序数,二个英文字母; 如: “th”,“nd”
t - 指定月份的天数; 如: “28” 至 “31”
U - 总秒数
w - 数字型的星期几,如: “0” (星期日) 至 “6” (星期六)
Y - 年,四位数字; 如: “1999”
y - 年,二位数字; 如: “99”
z - 一年中的第几天; 如: “0” 至 “365”
####strtotime($time)用法举例:
echo strtotime('2012-03-22');输出结果:1332427715(此处结果为随便写的,仅作说明使用)
echo strtotime(date('Y-d-m'));输出结果:(结合date(),结果同上)(时间日期转换为时间戳)
strtotime()还有个很强大的用法,参数可加入对于数字的操作、年月日周英文字符,示例如下:
echo date('Y-m-d H:i:s',strtotime('+1 day'));输出结果:2012-03-23 23:30:33(会发现输出明天此时的时间)
echo date('Y-m-d H:i:s',strtotime('-1 day'));输出结果:2012-03-21 23:30:33(昨天此时的时间)
echo date('Y-m-d H:i:s',strtotime('+1 week'));输出结果:2012-03-29 23:30:33(下个星期此时的时间)
echo date('Y-m-d H:i:s',strtotime('next Thursday'));输出结果:2012-03-29 00:00:00(下个星期四此时的时间)
echo date('Y-m-d H:i:s',strtotime('last Thursday'));输出结果:2012-03-15 00:00:00(上个星期四此时的时间)
1
2
3
4
5
6
7
8
####一些常用的格式化时间:
echo "明天凌晨的时间戳:".strtotime(date('Y-m-d',strtotime('+1 day')));
echo"一周后:".date("Y-m-d",strtotime("+1 week"));
echo"一周零两天四小时两秒后:".date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds"));
echo"下个星期四:".date("Y-m-d",strtotime("next Thursday"));
echo"上个周一:".date("Y-m-d",strtotime("last Monday"));
echo"一个月前:".date("Y-m-d",strtotime("last month"));
echo"一个月后:".date("Y-m-d",strtotime("+1 month"));
echo"十年后:".date("Y-m-d",strtotime("+10 year"));
//今天开始时间 $beginToday= date("Y-m-d H:i:s",mktime(0,0,0,date('m'),date('d'),date('Y')));
//今天结束时间 $endToday= date("Y-m-d H:i:s",mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1);
//昨天开始的时间 $beginYesterday= date("Y-m-d H:i:s",mktime(0,0,0,date('m'),date('d')-1,date('Y')));
//昨天结束时间 $endYesterday= date("Y-m-d H:i:s",mktime(0,0,0,date('m'),date('d'),date('Y'))-1);
//本周开始时间 $beginThisweek = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y")));
//本周结束时间 $endThisweek = date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y")));
//上周开始的时间 $beginLastweek= date("Y-m-d H:i:s",mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y')));
//上周结束时间 $endLastweek= date("Y-m-d H:i:s",mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y')));
//本月开始时间 $beginThismonth = date("Y-m-d H:i:s",mktime(0,0,0,date('m'),1,date('Y')));
//本月结束时间 $endThismonth = date("Y-m-d H:i:s",mktime(23,59,59,date('m'),date('t'),date('Y')));
//上月开始时间 $beginLastmonth = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-1,1,date("Y")));
//上月结束时间 $endLastmonth = date("Y-m-d H:i:s",mktime(23,59,59,date("m") ,0,date("Y")));
//本季度开始时间 $season = ceil((date('n'))/3);
//当前是第几季度 $beginThisseason = date('Y-m-d H:i:s', mktime(0, 0, 0,$season*3-3+1,1,date('Y')));
//本季度结束时间 $endThisseason = date('Y-m-d H:i:s', mktime(23,59,59,$season*3,date('t',mktime(0, 0 , 0,$season*3,1,date("Y"))),date('Y')));
//上季度开始时间 $season1 = ceil((date('n'))/3)-1;
//上季度是第几季度 $beginLastseason = date('Y-m-d H:i:s', mktime(0, 0, 0,$season1*3-3+1,1,date('Y')));
//上季度结束时间 $endLastseason = date('Y-m-d H:i:s', mktime(23,59,59,$season1*3,date('t',mktime(0, 0 , 0,$season1*3,1,date("Y"))),date('Y')));
//本年开始时间 $beginThisyear=date("Y",time())."-1"."-1";
//本年结束时间 $endThisyear =date("Y",time())."-12"."-31";
猜你喜欢
- 2025-07-06 为什么前端大佬都推荐用 performance.now() 而非 Date.now()?
- 2025-07-06 实战分享:邀请有礼产品怎么做?(邀请有礼活动)
- 2025-07-06 揭秘:视频播放网站如何精准记录用户观看进度
- 2025-07-06 第七篇 前端基础十问,看看你是否真的掌握扎实?
- 2025-07-06 下单预约送货时间功能设计及思路(预约送货怎么说)
- 2025-07-06 每天一个 Python 库:datetime 模块全攻略,时间操作太丝滑!
- 2025-07-06 前端代码更新,如何优雅地通知用户刷新页面?
- 2024-10-09 JS Date对象的妙用:如何更优雅的计算时间差?
- 2024-10-09 从零开始的前端请求之旅 从零开始学前端开发
- 2024-10-09 如何在上班时间利用终端控制台摸鱼??????
你 发表评论:
欢迎- 593℃几个Oracle空值处理函数 oracle处理null值的函数
- 586℃Oracle分析函数之Lag和Lead()使用
- 574℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 571℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 567℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 559℃【数据统计分析】详解Oracle分组函数之CUBE
- 546℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 540℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- 前端获取当前时间 (50)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)