php获取当月天数及当月第一天及最后一天时间戳

   $beginThismonth = mktime(0, 0, 0, date('m'), 1, date('Y'));
        $endThismonth = mktime(23, 59, 59, date('m'), date('t'), date('Y'));

        echo date('Y-m-d H:i:s', $beginThismonth);
        echo "<br>";
        echo date('Y-m-d H:i:s', $endThismonth);
        exit;

 

 

输出

 

1.获取上个月第一天及最后一天.
   echo date('Y-m-01', strtotime('-1 month'));
   echo "<br/>";
   echo date('Y-m-t', strtotime('-1 month'));
   echo "<br/>";

   上面的方法有些问题,根据bg5hfc回复做下修改

 上个月第一天:
 echo date('Y-m-d', strtotime(date('Y-m-01') . ' -1 month')); // 计算出本月第一天再减一个月
 上个月最后一天:
 echo date('Y-m-d', strtotime(date('Y-m-01') . ' -1 day')); // 计算出本月第一天再减一天
2.获取当月第一天及最后一天.
   $BeginDate=date('Y-m-01', strtotime(date("Y-m-d")));
   echo $BeginDate;
   echo "<br/>";
   echo date('Y-m-d', strtotime("$BeginDate +1 month -1 day"));
   echo "<br/>";
3.获取当天年份、月份、日及天数.
   echo " 本月共有:".date("t")."天";
   echo " 当前年份".date('Y');
   echo " 当前月份".date('m');
   echo " 当前几号".date('d');
   echo "<br/>";
4.使用函数及数组来获取当月第一天及最后一天,比较实用
   function getthemonth($date)
   {
   $firstday = date('Y-m-01', strtotime($date));
   $lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day"));
   return array($firstday,$lastday);
   }
   $today = date("Y-m-d");
   $day=getthemonth($today);
   echo "当月的第一天: ".$day[0]." 当月的最后一天: ".$day[1];
   echo "<br/>";

 

 

 

 

php如何计算两个时间戳之间相差的日时分秒

/功能:计算两个时间戳之间相差的日时分秒
//$begin_time 开始时间戳
//$end_time 结束时间戳
function timediff($begin_time,$end_time)
{
if($begin_time < $end_time){
$starttime = $begin_time;
$endtime = $end_time;
}else{
$starttime = $end_time;
$endtime = $begin_time;
}

//计算天数
$timediff = $endtime-$starttime;
$days = intval($timediff/86400);
//计算小时数
$remain = $timediff%86400;
$hours = intval($remain/3600);
//计算分钟数
$remain = $remain%3600;
$mins = intval($remain/60);
//计算秒数
$secs = $remain%60;
$res = array("day" => $days,"hour" => $hours,"min" => $mins,"sec" => $secs);
return $res;
}

print_r(timediff(strtotime(2015-03-20 16:20:30'),strtotime('2015-05-25 11:10:10')));

在C语言中,由于它本身并不直接支持日期和时间处理,你需要借助一些外部库或者自定义函数来获取特定份的第一天最后一天。这里推荐使用`<time.h>`库中的`strftime()`函数配合`mktime()`函数,因为它们可以方便地进行日期格式化。 首先,你需要知道每个份的天数,这可以通过闰年和平年的规则计算得出。然后你可以创建一个结构体表示日期,并编写一个函数来计算给定份的起始和结束日期。例如: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> // 定义一个日期结构体 struct Date { int day; int month; int year; }; // 计算某个份的第一天 struct Date first_day_of_month(int year, int month) { struct tm date_info = {0}; // 设置tm结构体成员 date_info.tm_year = year - 1900; // 时间系统从1900年开始 date_info.tm_mon = month - 1; // 份从0开始计数 date_info.tm_mday = 1; // 设置为每个第一天 time_t t = mktime(&date_info); // 转换为时间戳 if (t == -1) { printf("Error calculating first day.\n"); return (struct Date){0}; } struct Date result = {0}; result.year = year; result.month = month; result.day = mktime(&date_info); return result; } // 计算某个份的最后一天 struct Date last_day_of_month(int year, int month) { if (month == 2) { // 如果是二,需要检查是否是闰年 if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { return (struct Date) {29, month, year}; } else { return (struct Date) {28, month, year}; } } else if (month in [4, 6, 9, 11]) { // 其他不是31天的份 return (struct Date) {30, month, year}; } else { // 除2外的所有其他份 return (struct Date) {31, month, year}; } } int main() { int year = 2023; int month = 1; // 示例为1 struct Date first = first_day_of_month(year, month); struct Date last = last_day_of_month(year, month); printf("First day of January %d: Day %d, Month %d, Year %d\n", year, first.day, first.month, first.year); printf("Last day of January %d: Day %d, Month %d, Year %d\n", year, last.day, last.month, last.year); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芝麻开门2015

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值