Heim  >  Artikel  >  Backend-Entwicklung  >  So erhalten Sie Jahr, Monat, Tag, Stunde, Minute und Sekunde zwischen einem bestimmten Zeitraum in PHP

So erhalten Sie Jahr, Monat, Tag, Stunde, Minute und Sekunde zwischen einem bestimmten Zeitraum in PHP

墨辰丷
墨辰丷Original
2018-06-02 09:08:291747Durchsuche

Das Frontend übergibt zwei Standardzeitformate, das Format ist etwa 2009-05-12 12:12:30, und gibt dann bei Bedarf die Darstellung verschiedener Einheiten dieses Zeitraums zurück die Überprüfung des Zeitformats. Erwägen Sie daher das Hinzufügen von

, wenn Sie es verwenden:

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[&#39;month&#39;] = $tem;
		$rs[&#39;year&#39;] = $tem1;
		
		return $rs;
	}
}

Ein Tag mehr als ein Jahr , der zurückgegebene Wert beträgt 2 Jahre, eins Die Rendite von einem Tag mehr als einem Monat beträgt 2 Monate, also habe ich dies aufgrund von Projektanforderungen getan. Zuerst habe ich auch im Internet nach solchen Beispielen gesucht, aber Jeder hat das Jahr auf der Grundlage von 30 Tagen berechnet. Das auf diese Weise berechnete Ergebnis kann 31, 29 oder 28 Tage betragen 🎜>

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.

Verwandte Empfehlungen:

phpVerwenden der Funktion get_class_methods(), um eine Beispielanalyse der Klassifizierungsmethode zu erhalten

phpDetaillierte Erläuterung der Methode der benutzerdefinierten Funktion zur Implementierung der zweidimensionalen Array-Sortierfunktion

Wie PHP Textfeldinhalte in das HTML-Format konvertiert


Das obige ist der detaillierte Inhalt vonSo erhalten Sie Jahr, Monat, Tag, Stunde, Minute und Sekunde zwischen einem bestimmten Zeitraum in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn