GVKun编程网logo

PHP获取指定时间段之间的 年,月,天,时,分,秒(php获取指定日期的时间戳)

33

如果您想了解PHP获取指定时间段之间的年,月,天,时,分,秒和php获取指定日期的时间戳的知识,那么本篇文章将是您的不二之选。我们将深入剖析PHP获取指定时间段之间的年,月,天,时,分,秒的各个方面,

如果您想了解PHP获取指定时间段之间的 年,月,天,时,分,秒php获取指定日期的时间戳的知识,那么本篇文章将是您的不二之选。我们将深入剖析PHP获取指定时间段之间的 年,月,天,时,分,秒的各个方面,并为您解答php获取指定日期的时间戳的疑在这篇文章中,我们将为您介绍PHP获取指定时间段之间的 年,月,天,时,分,秒的相关知识,同时也会详细的解释php获取指定日期的时间戳的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

PHP获取指定时间段之间的 年,月,天,时,分,秒(php获取指定日期的时间戳)

PHP获取指定时间段之间的 年,月,天,时,分,秒(php获取指定日期的时间戳)

核心代码:

Class Utils {
     /**
	 * format MySQL DateTime (YYYY-MM-DD hh:mm:ss) 把mysql中查找出来的数据格式转换成时间秒数
	 * @param string $datetime
	 */
	public function fmDatetime($datetime) {
	  $year = substr($datetime,0,4);
	  $month = substr($datetime,5,2);
	  $day = substr($datetime,8,2);
	  $hour = substr($datetime,11,2);
	  $min = substr($datetime,14,2);
	  $sec = substr($datetime,17,2);
	  return mktime($hour,$min,$sec,$month,$day,0+$year);
	}
	/**
	 * 
	 * 根据俩个时间获取俩个时间的 包含的 年,月数,天数,小时,分钟,秒
	 * @param String $start
	 * @param String $end
	 * @return ArrayObject 
	 */
	 private function diffDateTime($DateStart,$DateEnd){
		$rs = array();
		
		$sYear = substr($DateStart,0,4);
		$eYear = substr($DateEnd,0,4);
		
		$sMonth = substr($DateStart,5,2);
		$eMonth = substr($DateEnd,5,2);
		
		$sDay = substr($DateStart,8,2);
		$eDay = substr($DateEnd,8,2);
		
		$startTime = $this->fmDatetime($DateStart);
		$endTime = $this->fmDatetime($DateEnd);
		$dis = $endTime-$startTime;//得到俩个时间的秒数
		$d = ceil($dis/(24*60*60));//得到天数
		$rs[''day''] = $d;//天数
		$rs[''hour''] = ceil($dis/(60*60));//小时
		$rs[''minute''] = ceil($dis/60);//分钟
		$rs[''second''] = $dis;//秒数
		$rs[''week''] = ceil($d/7);//周
		
		$tem = ($eYear-$sYear)*12;//月份
		$tem1 = $eYear-$sYear;//年
		if($eMonth-$sMonth<0){//月份相减为负
			$tem +=($eMonth-$sMonth);
		}else if($eMonth==$sMonth){//月份相同
			if($eDay-$sDay>=0){
				$tem ++;
				$tem1++;
			}
		}else if($eMonth-$sMonth>0){//月份相减正负
			$tem1++;
			if($eDay-$sDay>=0){//且日期相减为正数
				$tem +=($eMonth-$sMonth)+1;
			}else{
				$tem +=($eMonth-$sMonth);
			}
		}
		$rs[''month''] = $tem;
		$rs[''year''] = $tem1;
		
		return $rs;
	}
}

一年多一天,返回的是2年,一个月多一天返回的是2个月,以此推......项目需要,才做此出来,开始我也到网上找这样的例子,但大家都是把年就按365天来算,月就按30天来算,这样算出来的结果肯定是没用的,年有可能是366天,月有可能是31,29,28都有可能

您可能感兴趣的文章:
  • php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
  • php计算两个日期时间差(返回年、月、日)
  • php获取指定日期之间的各个周和月的起止时间
  • PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
  • php获取当前月与上个月月初及月末时间戳的方法
  • php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
  • PHP中获取时间的下一周下个月的方法
  • PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
  • php日期转时间戳,指定日期转换成时间戳
  • PHP获取当前日期和时间及格式化方法参数
  • php Smarty date_format [格式化时间日期]
  • php实现获取近几日、月时间示例

c# – 获取时间段之间的小时数

c# – 获取时间段之间的小时数

我在一个场景中运行,我需要找到当前时段的总小时数.我有一个时间和TimeOut日期时间,我希望得到员工在第二天晚上10点到凌晨4点之间工作的时间.我如何获得工作小时的输出.

我创建了一个像这样的扩展方法:

public static decimal GetNightDifferentialValue(this DailyTime dtr,Employee201 employee,PayrollSettings settings,IEnumerable<Holidays> holidays)
    {
        //kNow if the time out is greater than 10pm of the dtr
        //07-26-2016 14:00 - 07-27-2016 03:00
        //if time out i
        var days = Enumerable.Range(0,(int)(dtr.TimeOut - dtr.TimeIn).TotalHours + 1)
            .Select(i => dtr.TimeIn.AddHours(i))
            .Where(date => !(date.Hour >= 22)).Count();
        return days* employee.Rate;

    }

我的问题是在Where方法中如何过滤仅属于我的类别的小时数

解决方法

public static decimal GetNightDifferentialValue(this DailyTime dtr,IEnumerable<Holidays> holidays)
    {
        //kNow if the time out is greater than 10pm of the dtr
        //07-26-2016 14:00 - 07-27-2016 03:00
        //if time out i
        DateTime dayIn10pm = new DateTime(dtr.TimeIn.Year,dtr.TimeIn.Month,dtr.TimeIn.Day,22,0);
        DateTime dayAfter04am = dayIn10pm.Add(new TimeSpan(6,0));

        var hours = Enumerable.Range(0,(int)(dtr.TimeOut - dtr.TimeIn).TotalHours + 1)
            .Select(i => dtr.TimeIn.AddHours(i))
            .Where(date => (date > dayIn10pm && date <= dayAfter04am)).Count();
        return hours;

    }

C# 获取两个时间段之间的所有时间与获取当前时间所在的季度开始和结束时间

C# 获取两个时间段之间的所有时间与获取当前时间所在的季度开始和结束时间

一:C# 获取两个时间段之间的所有时间

public List<string> GetTimeList(string rq1, string rq2)
{
  List<string> timeList = new List<string>();
  // 首先保证 rq1<=rq2
  DateTime time1 = Convert.ToDateTime(rq1);
  DateTime time2 = Convert.ToDateTime(rq2);
  while (time1 <= time2)
  {
  timeList.Add(time1.ToString("yyyy-MM-dd"));
  time1 = time1.AddDays(1);
  }
  return timeList;
}

使用:

List<string> sjList = GetTimeList(sj1, sj2);

 

二:获取当前时间所在季度的开始和结束时间

// 本季度

private List<string> FunSelectSJNow(string jd)
{
  List<string> lis = new List<string>();
  string NowYear = jd.Substring (0, 4); // 截取当前年份
  string Nowjd = jd.Substring (jd.Length - 2, 2); // 截取当前季度
  string StartTime = ""; // 当前季度的开始时间
  string endTime = ""; // 当前季度的结束时间

  if (Nowjd == "01")
  {
    StartTime = "-01-01";
    endTime = "-03-01";
  }
  if (Nowjd == "02")
  {
    StartTime = "-04-01";
    endTime = "-06-01";
  }
  if (Nowjd == "03")
  {
    StartTime = "-07-01";
    endTime = "-09-01";
  }
  if (Nowjd == "04")
  {
    StartTime = "-10-01";
    endTime = "-12-01";
  }
  StartTime = NowYear + StartTime;
  endTime = NowYear + endTime;
  lis.Add(StartTime);
  lis.Add(endTime);
  return lis;
}

 

// 上季度

private List<string> FunSelectLastSJ(string jd)
{
  List<string> lis = new List<string>();
  string NowYear = jd.Substring (0, 4); // 截取当前年份
  string Nowjd = jd.Substring (jd.Length - 2, 2); // 截取当前季度
  string StartTime = ""; // 上季度的开始时间
  string endTime = ""; // 上季度的结束时间
  string endYear = ""; // 上季度年
  string endjd = ""; // 上季度季度
  if (Nowjd == "01")
  {
    endYear = (Convert.ToInt32(NowYear) -1).ToString() ;
    endjd = "Q4";
  }
  if (Nowjd == "02")
  {
    endYear = NowYear;
    endjd = "Q1";
  }
  if (Nowjd == "03")
  {
    endYear = NowYear;
    endjd = "Q2";
  }
  if (Nowjd == "04")
  {
    endYear = NowYear;
    endjd = "Q3";
  }

  if (endjd == "Q1")
  {
    StartTime = "-01-01";
    endTime = "-03-01";
  }
  if (endjd == "Q2")
  {
    StartTime = "-04-01";
    endTime = "-06-01";
  }
  if (endjd == "Q3")
  {
    StartTime = "-07-01";
    endTime = "-09-01";
  }
  if (endjd == "Q4")
  {
    StartTime = "-10-01";
    endTime = "-12-01";
  }
  StartTime = endYear + StartTime;
  endTime = endYear + endTime;
  lis.Add(StartTime);
  lis.Add(endTime);
  return lis;
}

 

使用:

List<string> li = FunSelectSJNow(NowTime);
rq1 = li[0];
rq2 = li[1];

 

//jd: Q1,Q2,Q3,Q4 (四个季度)
List<string> li = FunSelectLastSJ(jd);
rq1 = li[0];
rq2 = li[1];

C# 计算两个时间段之间的天数

C# 计算两个时间段之间的天数

我们常常需要计算开始时间和结束时间中间一共有多少天。

` private int ReturnDays(DateTime dt1, DateTime dt2) {

        TimeSpan ts = dt2 - dt1;

        return ts.Days;
    }

`

java8 获取指定时间的 unix 时间戳

java8 获取指定时间的 unix 时间戳

//获取每天11点的时间戳,其他需求自己扩展
Function<Integer, Long> toEpochMilli = hour ->
        LocalDateTime.of(
                LocalDate.now().getYear(), LocalDate.now().getMonth(), LocalDate.now().getDayOfMonth(),
                11, 0, 0, 0
        )
                .toInstant(ZoneOffset.ofHours(hour))
                .toEpochMilli();
//获取当前时间时间戳
System.currentTimeMillis();
Clock.systemUTC().millis();
Instant.now().toEpochMilli();
LocalDateTime.now().toInstant(ZoneOffset.ofHours(8)).toEpochMilli();

 

关于PHP获取指定时间段之间的 年,月,天,时,分,秒php获取指定日期的时间戳的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于c# – 获取时间段之间的小时数、C# 获取两个时间段之间的所有时间与获取当前时间所在的季度开始和结束时间、C# 计算两个时间段之间的天数、java8 获取指定时间的 unix 时间戳等相关知识的信息别忘了在本站进行查找喔。

本文标签: