今天朋友提了一个问题 不大不小,借助PHP函数实现,实现内容可能写复杂了 只是记录下思路
问题:假如今个是2月的最后一天我怎么获取下个月的月份呢,这个是定时任务去创建数据表的一个任务肯定是要在月底执行的。格式 年份后2位-月份带前置0
方案一:
<?php
//当前时间戳 + 15天时间戳,因为是月底执行考虑每月天数不一致,直接+15天 获取下月中旬时间戳
$current_time = (time() + (3600 * 24 *15));
//获取当前年份后两位 date参数Y 2023 y 23
$nextYear = $nextYear = date("y",$current_time );
//下月月份
$nextMonth = date("m",$current_time );
//函数把格式化的字符串写入一个变量中
echo sprintf('%s-%s', $nextYear, $nextMonth);
//输出
23-03
方案二:
<?php
//获取当前年份后两位 date参数Y 2023 y 23
$nextYear = date("y", time());
//获取当前月份
$currentMonth = date("m", time());
//判断当前月份是否是12月
if ($currentMonth == 12) {
//12月是年底 所以年份+1 月份置一
$nextYear++;
$nextMonth = 1;
} else {
//正常+1
$nextMonth = $currentMonth + 1;
}
//考虑php进行数字计算后 变为int没有前置0 所以在小于10月之前数据拼接前置0
$nextMonth = $nextMonth < 10 ? '0'.$nextMonth : $nextMonth;
//函数把格式化的字符串写入一个变量中
echo sprintf('%s-%s', $nextYear, $nextMonth);
//输出
23-03
代码可能不够简洁,仅供参考