PHP,Mysql日期和时间整理
如何在MySQL中处理日期和时间数据

如何在MySQL中处理日期和时间数据在数据库开发中,日期和时间是常见的数据类型,用于记录事件发生的日期和时间。
在MySQL中,有多种方法可以处理日期和时间数据,包括存储、计算和显示等方面的操作。
本文将介绍如何在MySQL中处理日期和时间数据,并给出一些实际应用的示例。
一、日期和时间的数据类型在MySQL中,提供了多种日期和时间的数据类型,常用的有DATE、TIME、DATETIME和TIMESTAMP等。
它们分别用于表示日期、时间、日期和时间的组合,以及时间戳等。
1. DATE类型DATE类型用于表示日期,格式为'YYYY-MM-DD',例如'2022-12-31'。
它有4个字节的存储空间,在MySQL中可以表示的日期范围为'1000-01-01'至'9999-12-31'。
2. TIME类型TIME类型用于表示时间,格式为'HH:MM:SS',例如'12:34:56'。
它有3个字节的存储空间,在MySQL中可以表示的时间范围为'-838:59:59'至'838:59:59'。
3. DATETIME类型DATETIME类型用于表示日期和时间的组合,格式为'YYYY-MM-DDHH:MM:SS',例如'2022-12-31 12:34:56'。
它有8个字节的存储空间,在MySQL中可以表示的日期范围为'1000-01-01 00:00:00'至'9999-12-31 23:59:59'。
4. TIMESTAMP类型TIMESTAMP类型也用于表示日期和时间的组合,格式和范围与DATETIME 类型相同。
不同之处在于,TIMESTAMP类型在存储时会自动转换为UTC时间,并以整数形式保存。
在使用时,会自动转换为当前时区的时间。
如何在MySQL中处理时间日期数据和时区问题

如何在MySQL中处理时间日期数据和时区问题在开发和管理数据库系统时,处理时间日期数据和时区问题是一个常见的挑战。
特别是当涉及到应用程序和用户在不同的时区之间进行交互时,正确处理时间和日期数据变得尤为重要。
本文将介绍如何在MySQL中处理时间日期数据和时区问题,并提供一些实用的建议和技巧。
1. 日期和时间类型介绍MySQL提供了多个用于存储日期和时间数据的数据类型,包括DATE、TIME、DATETIME、TIMESTAMP和YEAR。
下面是每种类型的简要介绍:- DATE类型用于存储日期,格式为'YYYY-MM-DD'。
例如,'2021-09-20'。
- TIME类型用于存储时间,格式为'HH:MM:SS'。
例如,'14:30:00'。
- DATETIME类型用于存储日期和时间,格式为'YYYY-MM-DD HH:MM:SS'。
例如,'2021-09-20 14:30:00'。
- TIMESTAMP类型也用于存储日期和时间,格式为'YYYY-MM-DDHH:MM:SS'。
然而,TIMESTAMP具有特殊的行为,它会自动更新为当前的日期和时间,可以用于记录数据的创建和修改时间。
- YEAR类型用于存储年份,格式为'YYYY'。
例如,'2021'。
2. 处理时区问题时区问题在处理时间和日期数据时经常会引发混乱和困惑。
MySQL提供了多种方法来处理时区问题,下面是一些常用的技术和策略:2.1 使用UTC存储一种常见的做法是使用协调世界时(Coordinated Universal Time,UTC)来存储日期和时间数据。
UTC是一种标准的时间表示方法,不受时区影响。
在这种方法中,所有的日期和时间数据都以UTC格式存储,并在应用程序和用户之间进行转换。
2.2 时区转换函数MySQL提供了一些函数来进行时区转换操作,例如CONVERT_TZ()和DATE_FORMAT()函数。
mysql常用时间列表的查询——七天内、本月、本周、某天

mysql常⽤时间列表的查询——七天内、本⽉、本周、某天最近七天的⽇期列表SELECT @s :=@s + 1 as `index`, DATE(DATE_SUB(CURRENT_DATE, INTERVAL @s DAY)) AS `date`FROM mysql.help_topic,(SELECT @s := -1) tempWHERE @s < 6ORDER BY 'date'⼀天24⼩时查询(0 - 23)1. SELECT @d := @d + 1 `hour`2. FROM mysql.help_topic,(SELECT @d := -1) temp3. WHERE @d < 23ORDER BY `hour本周⽇期列表SELECT @a :=@a + 1 as `index`, DATE(ADDDATE(CURRENT_DATE, INTERVAL @a DAY)) AS `date`FROM mysql.help_topic,(SELECT @a := 0) tempWHERE @a < 6 - WEEKDAY(CURRENT_DATE)UNIONSELECT @s :=@s - 1 as `index`, DATE(DATE_SUB(CURRENT_DATE, INTERVAL @s DAY)) AS `date`FROM mysql.help_topic,(SELECT @s := WEEKDAY(CURRENT_DATE) + 1) tempWHERE @s > 0ORDER BY `date`本⽉⽇期列表SELECT @a :=@a + 1 as `index`, DATE(ADDDATE(CURRENT_DATE, INTERVAL @a DAY)) AS `date`FROM mysql.help_topic,(SELECT @a := 0) tempWHERE @a < DAY(LAST_DAY(CURRENT_DATE)) - DAY(CURRENT_DATE)UNIONSELECT @s :=@s - 1 as `index`, DATE(DATE_SUB(CURRENT_DATE, INTERVAL @s DAY)) AS `date`FROM mysql.help_topic,(SELECT @s := day(CURRENT_DATE)) tempWHERE @s > 0ORDER BY `date`有了上⾯⼏张临时表,解决时间段缺失的问题就简单了。
MySQL统计函数记录——按月、按季度、按日、时间段统计以及MySQL日期时间函数大全

MySQL统计函数记录——按⽉、按季度、按⽇、时间段统计以及MySQL⽇期时间函数⼤全DAYOFWEEK(date) 返回⽇期date是星期⼏(1=星期天,2=星期⼀,……7=星期六,ODBC标准)mysql> select DAYOFWEEK('1998-02-03'); -> 3WEEKDAY(date) 返回⽇期date是星期⼏(0=星期⼀,1=星期⼆,……6= 星期天)。
mysql> select WEEKDAY('1997-10-04 22:23:00'); -> 5mysql> select WEEKDAY('1997-11-05'); -> 2DAYOFMONTH(date) 返回date是⼀⽉中的第⼏⽇(在1到31范围内)mysql> select DAYOFMONTH('1998-02-03'); -> 3DAYOFYEAR(date) 返回date是⼀年中的第⼏⽇(在1到366范围内)mysql> select DAYOFYEAR('1998-02-03'); -> 34MONTH(date) 返回date中的⽉份数值mysql> select MONTH('1998-02-03'); -> 2DAYNAME(date) 返回date是星期⼏(按英⽂名返回)mysql> select DAYNAME("1998-02-05"); -> 'Thursday'MONTHNAME(date) 返回date是⼏⽉(按英⽂名返回)mysql> select MONTHNAME("1998-02-05"); -> 'February'QUARTER(date) 返回date是⼀年的第⼏个季度mysql> select QUARTER('98-04-01'); -> 2WEEK(date,first) 返回date是⼀年的第⼏周(first默认值0,first取值1表⽰周⼀是周的开始,0从周⽇开始)mysql> select WEEK('1998-02-20'); -> 7mysql> select WEEK('1998-02-20',0); -> 7mysql> select WEEK('1998-02-20',1); -> 8YEAR(date) 返回date的年份(范围在1000到9999)mysql> select YEAR('98-02-03'); -> 1998HOUR(time) 返回time的⼩时数(范围是0到23)mysql> select HOUR('10:05:03'); -> 10MINUTE(time) 返回time的分钟数(范围是0到59)mysql> select MINUTE('98-02-03 10:05:03'); -> 5SECOND(time) 返回time的秒数(范围是0到59)mysql> select SECOND('10:05:03'); -> 3PERIOD_ADD(P,N) 增加N个⽉到时期P并返回(P的格式YYMM或YYYYMM)mysql> select PERIOD_ADD(9801,2); -> 199803PERIOD_DIFF(P1,P2) 返回在时期P1和P2之间⽉数(P1和P2的格式YYMM或YYYYMM)mysql> select PERIOD_DIFF(9802,199703); -> 11DATE_ADD(date,INTERVAL expr type)DATE_SUB(date,INTERVAL expr type)ADDDATE(date,INTERVAL expr type)SUBDATE(date,INTERVAL expr type) 对⽇期时间进⾏加减法运算 (ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词,也可以⽤运算符和-⽽不是函数 date是⼀个DATETIME或DATE值,expr对date进⾏加减法的⼀个表达式字符串type指明表达式expr应该如何被解释 [type值含义期望的expr格式]: SECOND 秒 SECONDS MINUTE 分钟 MINUTES HOUR 时间 HOURS DAY 天 DAYS MONTH ⽉ MONTHS YEAR 年 YEARS MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS" HOUR_MINUTE ⼩时和分钟 "HOURS:MINUTES" DAY_HOUR 天和⼩时 "DAYS HOURS" YEAR_MONTH 年和⽉ "YEARS-MONTHS" HOUR_SECOND ⼩时, 分钟, "HOURS:MINUTES:SECONDS" DAY_MINUTE 天, ⼩时, 分钟 "DAYS HOURS:MINUTES" DAY_SECOND 天, ⼩时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS" expr中允许任何标点做分隔符,如果所有是DATE值时结果是⼀个DATE值,否则结果是⼀个DATETIME值) 如果type关键词不完整,则MySQL从右端取值,DAY_SECOND因为缺少⼩时分钟等于MINUTE_SECOND) 如果增加MONTH、YEAR_MONTH或YEAR,天数⼤于结果⽉份的最⼤天数则使⽤最⼤天数)mysql> SELECT "1997-12-31 23:59:59" INTERVAL 1 SECOND; -> 1998-01-01 00:00:00mysql> SELECT INTERVAL 1 DAY "1997-12-31"; -> 1998-01-01mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND; -> 1997-12-31 23:59:59mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 SECOND); -> 1998-01-01 00:00:00mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 DAY); -> 1998-01-01 23:59:59mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL "1:1" MINUTE_SECOND); -> 1998-01-01 00:01:00mysql> SELECT DATE_SUB("1998-01-01 00:00:00",INTERVAL "1 1:1:1" DAY_SECOND); -> 1997-12-30 22:58:59mysql> SELECT DATE_ADD("1998-01-01 00:00:00", INTERVAL "-1 10" DAY_HOUR); -> 1997-12-30 14:00:00mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY); -> 1997-12-02mysql> SELECT EXTRACT(YEAR FROM "1999-07-02"); -> 1999mysql> SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03"); -> 199907mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03"); -> 20102TO_DAYS(date) 返回⽇期date是西元0年⾄今多少天(不计算1582年以前)mysql> select TO_DAYS(950501); -> 728779mysql> select TO_DAYS('1997-10-07'); -> 729669FROM_DAYS(N) 给出西元0年⾄今多少天返回DATE值(不计算1582年以前)mysql> select FROM_DAYS(729669); -> '1997-10-07'DATE_FORMAT(date,format) 根据format字符串格式化date值 (在format字符串中可⽤标志符: %M ⽉名字(January……December) %W 星期名字(Sunday……Saturday) %D 有英语前缀的⽉份的⽇期(1st, 2nd, 3rd, 等等。
MySQL中的日期和时间处理技巧

MySQL中的日期和时间处理技巧MySQL是一种广泛应用于数据库管理系统中的开源软件,它提供了许多功能来处理日期和时间数据。
在实际应用中,日期和时间数据的处理是非常常见的需求之一。
本文将介绍一些MySQL中的日期和时间处理技巧,帮助读者更好地利用MySQL进行日期和时间的管理和操作。
1. 日期和时间类型在MySQL中,有多种日期和时间类型可供选择,包括DATE、TIME、DATETIME、TIMESTAMP等。
这些类型的选择取决于你的具体需求。
- DATE:用于存储日期,格式为YYYY-MM-DD。
- TIME:用于存储时间,格式为HH:MM:SS。
- DATETIME:用于存储日期和时间,格式为YYYY-MM-DD HH:MM:SS。
- TIMESTAMP:与DATETIME相似,但它会在数据被插入或更新时自动进行时间戳记录。
在选择日期和时间类型时,需要综合考虑数据的精度、存储空间以及操作需求等因素。
2. 日期和时间的存储与插入在MySQL中,日期和时间的存储可以通过多种方式实现。
例如,可以使用字符串直接插入,也可以使用日期和时间函数进行转换。
- 字符串插入:可以将日期和时间以字符串的形式插入到数据库中。
例如:```INSERT INTO table_name (date_column) VALUES ('2022-01-01');```- 使用日期和时间函数:MySQL提供了许多日期和时间函数,可以对数据进行转换和格式化。
例如:```INSERT INTO table_name (date_column) VALUES (DATE_FORMAT(NOW(), '%Y-%m-%d'));```3. 日期和时间的查询与比较在实际应用中,我们经常需要根据日期和时间来进行查询和比较操作。
MySQL提供了强大的日期和时间函数来满足这些需求。
- 比较操作符:可以使用比较操作符(如=、<、>等)来比较不同的日期和时间数据。
工作日表 mysql

工作日表mysql摘要:1.工作日表介绍2.MySQL 简介3.创建工作日表4.插入工作日数据5.查询工作日数据6.更新工作日数据7.删除工作日数据8.总结正文:【1.工作日表介绍】工作日表是一个记录工作日信息的表格,通常包括日期、星期、节假日等信息。
在工作日表中,我们可以快速查询某一天是星期几,是否有节假日等。
这对于安排工作、调度人员等非常有用。
【2.MySQL 简介】MySQL 是一款流行的关系型数据库管理系统,广泛应用于互联网、企业等领域。
它具有高性能、易使用、成本低等优点,是很多开发者的首选数据库。
【3.创建工作日表】首先,我们需要创建一个工作日表。
在MySQL 中,可以使用CREATETABLE 语句来创建表。
例如:```sqlCREATE TABLE work_day (id INT AUTO_INCREMENT PRIMARY KEY,date DATE NOT NULL,weekday ENUM("周一", "周二", "周三", "周四", "周五", "周六", "周日") NOT NULL,is_holiday BOOLEAN NOT NULL);```这个语句创建了一个名为work_day 的表,包含日期、星期和是否为节假日等信息。
【4.插入工作日数据】当我们有新的工作日数据时,可以使用INSERT INTO 语句将数据插入到工作日表中。
例如:```sqlINSERT INTO work_day (date, weekday, is_holiday) VALUES ("2022-01-01", "周六", 1);```这条语句将2022 年1 月1 日插入到工作日表中,并标记为周六和节假日。
【5.查询工作日数据】查询工作日数据时,可以使用SELECT 语句。
mysql获取昨天日期、今天日期、明天日期以及前一个小时和后一个小时的时间

mysql获取昨天⽇期、今天⽇期、明天⽇期以及前⼀个⼩时和后⼀个⼩时的时间1、当前⽇期select DATE_SUB(curdate(),INTERVAL 0 DAY) ;2、明天⽇期select DATE_SUB(curdate(),INTERVAL -1 DAY) ;3、昨天⽇期select DATE_SUB(curdate(),INTERVAL 1 DAY) ;4、前⼀个⼩时时间select date_sub(now(), interval 1 hour);5、后⼀个⼩时时间select date_sub(now(), interval -1 hour);6、前30分钟时间select date_add(now(),interval -30 minute)7、后30分钟时间select date_add(now(),interval 30 minute)取得当天:SELECT curdate();mysql> SELECT curdate();+------------+| curdate() |+------------+| 2013-07-29 |+------------+取得当前⽇期:mysql> select now();+---------------------+| now() |+---------------------+| 2013-07-29 22:10:40 |+---------------------+取得前⼀天:mysql> select date_sub(curdate(),interval 1 day);+------------------------------------+| date_sub(curdate(),interval 1 day) |+------------------------------------+| 2013-07-28 |+------------------------------------+括号中为当天时间的前⼀天,如果统计前⼏天就将括号中的'1'改成相应的天数。
MYSQL获取当前年、季、月、周第一天、最后一天的日期时间戳

MYSQL获取当前年、季、⽉、周第⼀天、最后⼀天的⽇期时间戳 因为做⼀些商场某个会员今年的消费分析,所以对sql中时间的获取进⾏了判断。
例如获取今年(即当前年的第⼀天到昨天0时之间)的消费总额。
如果需要时间戳转换,⽤UNIX_TIMESTAMP()函数。
⼀、下⾯是⼀些mysql的时间获取语句:#当年第⼀天:SELECT DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1DAY);#当年最后⼀天:SELECT concat(YEAR(now()),'-12-31');#当前week的第⼀天:select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) +1DAY);#当前week的最后⼀天:select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) -5DAY);#前⼀week的第⼀天:select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) +8DAY);#前⼀week的最后⼀天:select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) +2DAY);#前两week的第⼀天:select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) +15DAY);#前两week的最后⼀天:select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) +9DAY);#当前month的第⼀天:SELECT concat(date_format(LAST_DAY(now()),'%Y-%m-'),'01');#当前month的最后⼀天:SELECT LAST_DAY(now());#前⼀month的第⼀天:SELECT concat(date_format(LAST_DAY(now() - interval 1month),'%Y-%m-'),'01');#前⼀month的最后⼀天:SELECT LAST_DAY(now() - interval 1month);#前两month的第⼀天:SELECT concat(date_format(LAST_DAY(now() - interval 2month),'%Y-%m-'),'01');#前两month的最后⼀天:SELECT LAST_DAY(now() - interval 2month);#当前quarter的第⼀天:select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-3month),'%Y-%m-'),'01');#当前quarter的最后⼀天:select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-1month);#前⼀quarter的第⼀天:select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-6month),'%Y-%m-'),'01');#前⼀quarter的最后⼀天:select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-4month);#前两quarter的第⼀天:select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-9month),'%Y-%m-'),'01');#前两quarter的最后⼀天:select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-7month);⼆、举⼏个某会员的消费分析的sql语句:-- 今年的消费总额SELECT IFNULL(SUM(a.trade_amount)/100,0)FROM mob_checkout_counter.checkout_record a -- 消费记录表WHERE card_code ='某会员的标识'AND checkout_status = ‘消费状态’AND trade_time >= UNIX_TIMESTAMP(DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1DAY)) -- 当前年的第⼀天的时间戳AND trade_time <= UNIX_TIMESTAMP(CAST(SYSDATE()AS DATE) - INTERVAL 1DAY) -- 昨天的0时的时间戳-- 今年的消费笔数SELECT COUNT(*)FROM mob_checkout_counter.checkout_record aWHERE card_code ='2396998881100009965'AND checkout_status =1AND trade_time >= UNIX_TIMESTAMP(DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1DAY))AND trade_time <= UNIX_TIMESTAMP(CAST(SYSDATE()AS DATE) - INTERVAL 1DAY)-- 今年的客单价SELECT IFNULL(SUM(a.trade_amount)/100,0)/COUNT(*)FROM mob_checkout_counter.checkout_record aWHERE card_code ='2396998881100009965'AND checkout_status =1AND trade_time >= UNIX_TIMESTAMP(DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1DAY))AND trade_time <= UNIX_TIMESTAMP(CAST(SYSDATE()AS DATE) - INTERVAL 1DAY)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PHP,Mysql日期和时间整理
工作一年,收获了很多,慢慢做些总结,提升工作效率,
工作中mysql使用的时间是一个UNIX时间戳:从1970年1月1日0点开始到当前时间的秒数,由于是int类型,很方便的适用于计算机处理,不仅仅是php和mysql的数据交互的一种格式,在各种客户端,也是数据交互的标准(android/IOS)等,因此如果只是保存和显示日期的时候,应该使用UNIX时间戳来计算日期和做为标准的日期格式。
工作中常用的流程是:将HTML页面的时间转化为时间戳保存到mysql中,从mysql中取出时间戳格式化展示在web或手机客户端。
总之mysql中保存的时间是UNIX时间戳,然后被PHP格式化为合适的时间
介绍几个常用的函数
1.date(),
2.mktime(),
3.getdate(),
4.strftime()
1.date()
PHP中获取时间和日期
使用date()函数:将时间戳或当前时间转化成格式化的字符串,例如:
echo date('Y-i-s');//输出2014-3-25
2.mktime()
使用mktime()将时间转化成UNIX时间戳
$timestamp = mktime();
获取当前时间戳有三种方法:
mktime(),time(),date('U')
mktime做时间运算
mktime(12,0,0,$mon,$day+10,$year);十天以后的时间戳
3.getdate()函数:
$today = getdate();
print_r($today);
//输出
Array
(
[seconds] => 38
[minutes] => 38
[hours] => 22
[mday] => 25
[wday] => 2
[mon] => 3
[year] => 2014
[yday] => 83
[weekday] => Tuesday
[month] => March
[0] => 1395758318
)
使用checkdate()函数检验日期有效性
4.strftime()
格式化时间戳
mysql格式化时间
1.DATE_FORMAT()
2.UNIX_TIMESTAMP()返回格式化成UNIX时间戳的日期,例如:SELECT UNIX_TIMESTAMP(date) FROM table,这样就可以在PHP中处理了
PHP中格式化时间的函数比较少,介绍几个常用的格式化时间函数
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
?*将timestamp时间转化为x时x分x秒
?*
?*/
public static function getTimeLong($seconds) { ????if (!$seconds) {
????????return '0秒';
????}
????$ret = '';
????if ($seconds >= 3600) {
????????$hours = (int)($seconds / 3600); ????????$seconds = $seconds % 3600; ????????if ($hours) {
????????????$ret .= ($hours . '时'); ????????}
????}
????if ($seconds >= 60) {
????????$mi = (int)($seconds / 60); ????????$seconds = $seconds % 60; ????????if ($mi) {
????????????$ret .= ($mi . '分'); ????????}
????}
????if ($seconds) {
????????$ret .= ($seconds . '秒');
????}
????return $ret;
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
15
16
17
18
19
20
21
22
23
24
/**
?* 将相差timestamp转为如“1分钟前”,“3天前”等形式
?*
?* @param timestamp $ts_diff 当前时间 - 要格式化的timestamp ?*/
public static function formatTime($ts_diff)
{
????if ($ts_diff <=0)
????{
????????return date('Y-m-d');
????}
????else if ( $ts_diff <= 3600 )
????{
????????return max(1, (int)($ts_diff/60)) . '分钟前'; ????}
????else if ( $ts_diff <= 86400 )
????{
????????return ((int)($ts_diff/3600)) . '小时前';
????}
????else
????{
????????return ((int)($ts_diff/86400)) . '天前';
????}
}
?
1
2
3
4
5
6
7
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/** 将数字星期转换成字符串星期 weekNum2String($num) ?* @param int
?* @return string
?*/
public static function weekNum2String($num){ ????switch($num){
????????case 1:
????????????return '星期一';
????????case 2:
????????????return '星期二';
????????case 3:
????????????return '星期三';
????????case 4:
????????????return '星期四';
????????case 5:
????????????return '星期五';
????????case 6:
????????????return '星期六';
????????case 7:
????????????return '星期日';
????????default:
????????????return '未知';
????}
}。