strtotime() 函数

将何英文文本的日期或时间描述解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数)。

参数 描述
time 必需。规定日期/时间字符串。
now 可选。规定用来计算返回值的时间戳。如果省略该参数,则使用当前时间。

注意事项

strtotime只能处理标准的英文日期格式。如果传入的日期格式是非标准的、中文或其他语言的日期格式(如 “2019年10月1日”),strtotime() 会返回 false 或空。

1)处理:2020年9月2日

$val = str_replace([‘年’, ‘月’, ‘日’], [‘-‘, ‘-‘, ”], $val);

2)处理:2020-9-1

$val = preg_replace_callback(‘/(\d{4})-(\d{1,2})-(\d{1,2})/’, function($matches) {
// 使用 str_pad 来补齐月份和日期
return $matches[1] . ‘-‘ . str_pad($matches[2], 2, ‘0’, STR_PAD_LEFT) . ‘-‘ . str_pad($matches[3], 2, ‘0’, STR_PAD_LEFT);
}, $val);

日期的加减运算

//今天
strtotime(‘now’)

strtotime(‘today’)

//昨天
strtotime(‘-1 day’)
strtotime(‘yesterday’)
mktime(0,0,0,date(‘m’),date(‘d’)-1,date(‘Y’))

//明天
strtotime(‘1 day’) strtotime(‘tomorrow’)
mktime(0,0,0,date(‘m’),date(‘d’)+1,date(‘Y’))

//前i天

strtotime(‘-‘.$i.’ day’);

//后i天

strtotime($i.’ day’);

mktime(0,0,0,date(‘m’),date(‘d’)+i,date(‘Y’));

星期的加减运算

//下周一

strtotime(‘next monday’)

//下周五

strtotime(‘last Friday’)

//本星期(星期一)

strtotime(‘this week’)

//上星期(星期一)

strtotime(‘last week’)

//下星期(星期一)

strtotime(‘next week’)

//上星期(7天前)

strtotime(‘-1 week’)

//下星期(7天后)

strtotime(‘1 week’)

//$i个星期

strtotime($i.’ week’)

//$i个星期后的星期一

strtotime($i.’ week monday’)

月份的加减运算

//上个月

strtotime(‘last month’)

strtotime(‘-1 month’)

//下个月

strtotime(‘next month’)

strtotime(‘1 month’)

//前$i月

strtotime(‘-‘.$i.’ month’)

mktime(0,0,0,date(‘m’)-$i,date(‘d’),date(‘Y’))

//后$i月

strtotime($i.’ month’)

mktime(0,0,0,date(‘m’)+$i,date(‘d’),date(‘Y’))

时间戳

一天(24小时)总秒数 86400

一周(7天)总秒数 604800

//今天0点

strtotime(date(‘Y-m-d’))

//今天23:59:59

strtotime(date(‘Y-m-d’))+86399

//昨天0点

strtotime(date(‘Y-m-d’,strtotime(‘-1 day’)))

//昨天23:59:59

strtotime(date(‘Y-m-d’,strtotime(‘-1 day’)))+86399

strtotime(date(‘Y-m-d’))-1

//明天0点

strtotime(date(‘Y-m-d’,strtotime(‘1 day’)))

//明天23:59:59

strtotime(date(‘Y-m-d’,strtotime(‘1 day’)))+86399

strtotime(date(‘Y-m-d’,strtotime(‘2 day’)))-1

//昨天的这个时刻

strtotime(‘-1 day’) //数字与day之前可以不用空格

//明天的这个时刻

strtotime(‘1 day’)

//$i天后的这个时刻

strtotime($i.’ day’)

//$i天后的这个时刻

strtotime(-$i.’ day’)

//$i天后的0点

strtotime(date(‘Y-m-d’,strtotime($i.’ day’)))

//$i天前的0点

strtotime(date(‘Y-m-d’,strtotime(-$i.’ day’)))

//本星期开始(周一0点)

strtotime(‘this week monday’)

//本星期结束(周日23:59:59)

strtotime(‘this week sunday’)+86399

strtotime(‘this week monday’)+604800-1

//前$i星期开始(周一0点)

strtotime(‘this week monday’)-604800 * $i

//前$i星期结束(周日23:59:59点)

strtotime(‘this week monday’)-604800 * ($i-1)-1

//上一个周一0点

strtotime(“-1 week Monday”)  //今天是周一,则为上周一0点 今天是周二(周一之后),则为本周三0点

//下一个周一0点

strtotime(“1 week Monday”) //今天是周一,则为下周一0点 今天是周二(周一之后),则为下下周一0点

//本月首日0点

strtotime(date(‘Y-m’))

//本月尾日23:59:59

strtotime(date(‘Y-m’,strtotime(‘next month’)))-1

mktime(0,0,0,date(‘m’)+1,1,date(‘Y’))-1

//前$i月首日0点

mktime(0,0,0,date(‘m’)-$i,1,date(‘Y’))

//前$i月尾日23:59:59

mktime(0,0,0,date(‘m’)-$i+1,1,date(‘Y’))-1

//后$i月首日0点

mktime(0,0,0,date(‘m’)+$i,1,date(‘Y’))

//后$i月首日23:59:59

mktime(0,0,0,date(‘m’)+$i+1,1,date(‘Y’))-1

作者 admin

百度广告效果展示