Heim Backend-Entwicklung PHP-Tutorial php 时隔日期工具类

php 时隔日期工具类

Jun 13, 2016 pm 01:07 PM
date function return static

php 时间日期工具类

<?php
DateTimeUtils::addDate('2012-12-01',1,'y');
DateTimeUtils::getWeekDay('2012/10/01','/');
DateTimeUtils::isLeapYear('2012');
class DateTimeUtils {
	/**
	 * Checks for leap year, returns true if it is. No 2-digit year check. Also
	 * handles julian calendar correctly.
	 * @param integer $year year to check
	 * @return boolean true if is leap year
	 */
	public static function isLeapYear($year)
	{
		$year = self::digitCheck($year);
		if ($year % 4 != 0)
			return false;

		if ($year % 400 == 0)
			return true;
		// if gregorian calendar (>1582), century not-divisible by 400 is not leap
		else if ($year > 1582 && $year % 100 == 0 )
			return false;
		return true;
	}

	/**
	 * Fix 2-digit years. Works for any century.
	 * Assumes that if 2-digit is more than 30 years in future, then previous century.
	 * @param integer $y year
	 * @return integer change two digit year into multiple digits
	 */
	protected static function digitCheck($y)
	{
		if ($y < 100){
			$yr = (integer) date("Y");
			$century = (integer) ($yr /100);

			if ($yr%100 > 50) {
				$c1 = $century + 1;
				$c0 = $century;
			} else {
				$c1 = $century;
				$c0 = $century - 1;
			}
			$c1 *= 100;
			// if 2-digit year is less than 30 years in future, set it to this century
			// otherwise if more than 30 years in future, then we set 2-digit year to the prev century.
			if (($y + $c1) < $yr+30) $y = $y + $c1;
			else $y = $y + $c0*100;
		}
		return $y;
	}

	/**
	 * Returns 4-digit representation of the year.
	 * @param integer $y year
	 * @return integer 4-digit representation of the year
	 */
	public static function get4DigitYear($y)
	{
		return self::digitCheck($y);
	}
	/**
	 * Checks to see if the year, month, day are valid combination.
	 * @param integer $y year
	 * @param integer $m month
	 * @param integer $d day
	 * @return boolean true if valid date, semantic check only.
	 */
	public static function isValidDate($y,$m,$d)
	{
		return checkdate($m, $d, $y);
	}
	public static function checkDate($date, $separator = "-") { //检查日期是否合法日期
		$dateArr = explode ($separator, $date);
		if (is_numeric ( $dateArr [0] ) && is_numeric ( $dateArr [1] ) && is_numeric ( $dateArr [2] )) {
			return checkdate ( $dateArr [1], $dateArr [2], $dateArr [0] );
		}
		return false;
	}
	/**
	 * Checks to see if the hour, minute and second are valid.
	 * @param integer $h hour
	 * @param integer $m minute
	 * @param integer $s second
	 * @param boolean $hs24 whether the hours should be 0 through 23 (default) or 1 through 12.
	 * @return boolean true if valid date, semantic check only.
	 * @since 1.0.5
	 */
	public static function isValidTime($h,$m,$s,$hs24=true)
	{
		if($hs24 && ($h < 0 || $h > 23) || !$hs24 && ($h < 1 || $h > 12)) return false;
		if($m > 59 || $m < 0) return false;
		if($s > 59 || $s < 0) return false;
		return true;
	}
	public static function checkTime($time, $separator = ":") { //检查时间是否合法时间  
		$timeArr = explode ($separator, $time );
		if (is_numeric ( $timeArr [0] ) && is_numeric ( $timeArr [1] ) && is_numeric ( $timeArr [2] )) {
			if (($timeArr [0] >= 0 && $timeArr [0] <= 23) && ($timeArr [1] >= 0 && $timeArr [1] <= 59) && ($timeArr [2] >= 0 && $timeArr [2] <= 59))
				return true;
			else
				return false;
		}
		return false;
	}
	
	public static function addDate($date, $int, $unit = "d") { //日期的增加
		$dateArr = explode ( "-", $date );
		$value [$unit] = $int;
		return date ( "Y-m-d", mktime ( 0, 0, 0, $dateArr [1] + $value ['m'], $dateArr [2] + $value ['d'], $dateArr [0] + $value ['y'] ) );
	
	}
	
	public static function addDayTimestamp($ntime, $aday) { //取当前时间后几天,天数增加单位为1
		$dayst = 3600 * 24;
		$oktime = $ntime + ($aday * $dayst);
		return $oktime;
	}
	
	public static function dateDiff($date1, $date2, $unit = "d") { //时间比较函数,返回两个日期相差几秒、几分钟、几小时或几天  
		switch ($unit) {
			case 's' :
				$dividend = 1;
				break;
			case 'i' :
				$dividend = 60;
				break;
			case 'h' :
				$dividend = 3600;
				break;
			case 'd' :
				$dividend = 86400;
				break;
			default :
				$dividend = 86400;
		}
		$time1 = strtotime ( $date1 );
		$time2 = strtotime ( $date2 );
		if ($time1 && $time2)
			return ( float ) ($time1 - $time2) / $dividend;
		return false;
	}
	//2011-12-06  =>
	public static function getWeekDay($date, $separator = "-") { //计算出给出的日期是星期几
		$dateArr = explode ($separator, $date);
		return date ( "w", mktime ( 0, 0, 0, $dateArr [1], $dateArr [2], $dateArr [0] ) );
	}
	
	public static function floorTime($seconds) { //让日期显示为:XX天XX年以前 
		$times = '';
		$days = floor ( ($seconds / 86400) % 30 );
		$hours = floor ( ($seconds / 3600) % 24 );
		$minutes = floor ( ($seconds / 60) % 60 );
		$seconds = floor ( $seconds % 60 );
		if ($seconds >= 1)
			$times .= $seconds . '秒';
		if ($minutes >= 1)
			$times = $minutes . '分钟 ' . $times;
		if ($hours >= 1)
			$times = $hours . '小时 ' . $times;
		if ($days >= 1)
			$times = $days . '天';
		if ($days > 30)
			return false;
		$times .= '前';
		return str_replace ( " ", '', $times );
	}
	
	public static function transDateToChs($date) {
		if (empty ( $date ))
			return '今日';
		$y = date ( 'Y', strtotime ( $date ) );
		$m = date ( 'm', strtotime ( $date ) );
		$d = date ( 'd', strtotime ( $date ) );
		return $y . '年' . $m . '月' . $d . '日';
	}
	
	// 08/31/2004 => 2004-08-31
	public static function TransDateUI($datestr, $type = 'Y-m-d') {
		if ($datestr == Null)
			return Null;
		$target = $datestr;
		$arr_date = preg_split ( "/\//", $target );
		$monthstr = $arr_date [0];
		$daystr = $arr_date [1];
		$yearstr = $arr_date [2];
		$result = date ( $type, mktime ( 0, 0, 0, $monthstr, $daystr, $yearstr ) );
		return $result;
	}
	
	// 12/20/2004 10:55 AM => 2004-12-20 10:55:00
	public static function TransDateTimeUI($datestr, $type = 'Y-m-d H:i:s') {
		if ($datestr == Null)
			return Null;
		$target = $datestr;
		$arr_date = preg_split ( "/\/|\s|:/", $target );
		$monthstr = $arr_date [0];
		$daystr = $arr_date [1];
		$yearstr = $arr_date [2];
		$hourstr = $arr_date [3];
		$minutesstr = $arr_date [4];
		$result = date ( $type, mktime ( $hourstr, $minutesstr, 0, $monthstr, $daystr, $yearstr ) );
		return $result;
	}
	
	// 2004-08-31 => 08/31/2004
	public static function TransDateDB($datestr, $type = 'm/d/Y') {
		if ($datestr == Null)
			return Null;
		if ($datestr == '0000-00-00')
			return Null;
		$target = $datestr;
		$arr_date = preg_split ( "/-/", $target );
		$monthstr = $arr_date [1];
		$daystr = $arr_date [2];
		$yearstr = $arr_date [0];
		$result = date ( $type, mktime ( 0, 0, 0, $monthstr, $daystr, $yearstr ) );
		return $result;
	}
	
	// 2004-08-31 10:55:00 => 12/20/2004 10:55 AM 
	public static function TransDateTimeDB($datestr, $type = 'm/d/Y h:i A') {
		if ($datestr == Null)
			return Null;
		$target = $datestr;
		$arr_date = preg_split ( "/-|\s|:/", $target );
		$monthstr = $arr_date [1];
		$daystr = $arr_date [2];
		$yearstr = $arr_date [0];
		$hourstr = $arr_date [3];
		$minutesstr = $arr_date [4];
		$secondstr = $arr_date [5];
		$result = date ( $type, mktime ( $hourstr, $minutesstr, $secondstr, $monthstr, $daystr, $yearstr ) );
		return $result;
	}
}
?>
Nach dem Login kopieren
?

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Detaillierte Erläuterung der Verwendung von Return in der C-Sprache Detaillierte Erläuterung der Verwendung von Return in der C-Sprache Oct 07, 2023 am 10:58 AM

Die Verwendung von return in der C-Sprache ist: 1. Für Funktionen, deren Rückgabewerttyp ungültig ist, können Sie die Rückgabeanweisung verwenden, um die Ausführung der Funktion vorzeitig zu beenden. 2. Für Funktionen, deren Rückgabewerttyp nicht ungültig ist, ist die Funktion von Die Return-Anweisung dient dazu, die Ausführung der Funktion zu beenden. 3. Beenden Sie die Ausführung der Funktion vorzeitig wenn die Funktion keinen Wert zurückgibt.

Was bedeutet Funktion? Was bedeutet Funktion? Aug 04, 2023 am 10:33 AM

Funktion bedeutet Funktion. Es handelt sich um einen wiederverwendbaren Codeblock mit bestimmten Funktionen. Er kann Eingabeparameter akzeptieren, bestimmte Operationen ausführen und Ergebnisse zurückgeben. Code, um die Wiederverwendbarkeit und Wartbarkeit des Codes zu verbessern.

So erstellen und benennen Sie eine Datei/einen Ordner basierend auf dem aktuellen Zeitstempel So erstellen und benennen Sie eine Datei/einen Ordner basierend auf dem aktuellen Zeitstempel Apr 27, 2023 pm 11:07 PM

Wenn Sie nach einer Möglichkeit suchen, Dateien und Ordner automatisch auf der Grundlage von Systemzeitstempeln zu erstellen und zu benennen, sind Sie hier genau richtig. Es gibt eine supereinfache Möglichkeit, diese Aufgabe zu erledigen. Die erstellten Ordner oder Dateien können dann für verschiedene Zwecke verwendet werden, z. B. zum Speichern von Dateisicherungen, zum Sortieren von Dateien nach Datum usw. In diesem Artikel erklären wir in einigen sehr einfachen Schritten, wie Sie in Windows 11/10 automatisch Dateien und Ordner erstellen und diese entsprechend dem Zeitstempel des Systems benennen. Die verwendete Methode ist ein Batch-Skript, das sehr einfach ist. Ich hoffe, Ihnen hat die Lektüre dieses Artikels gefallen. Abschnitt 1: So erstellen und benennen Sie automatisch einen Ordner basierend auf dem aktuellen Zeitstempel des Systems. Schritt 1: Navigieren Sie zunächst zum übergeordneten Ordner, in dem Sie den Ordner erstellen möchten.

PHP-Warnung: date() erwartet, dass Parameter 2 lang ist, die Zeichenfolge ist eine Lösung PHP-Warnung: date() erwartet, dass Parameter 2 lang ist, die Zeichenfolge ist eine Lösung Jun 22, 2023 pm 08:03 PM

Bei der Entwicklung mit PHP-Programmen stoßen Sie häufig auf Warn- oder Fehlermeldungen. Unter diesen kann eine Fehlermeldung erscheinen: PHPWarning:date()expectsparameter2tobelong,stringgiven. Die Fehlermeldung bedeutet: Es wird erwartet, dass der zweite Parameter der Funktion date() eine lange Ganzzahl (long) ist, aber tatsächlich wird ihm ein String (string) übergeben. Also, wir

Wie ist die Ausführungsreihenfolge von Return- und Final-Anweisungen in Java? Wie ist die Ausführungsreihenfolge von Return- und Final-Anweisungen in Java? Apr 25, 2023 pm 07:55 PM

Quellcode: publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}}# Ausgabe Die Ausgabe des obigen Codes kann einfach zu dem Schluss kommen: return wird ausgeführt, bevor wir uns schließlich ansehen, was auf der Bytecode-Ebene passiert. Im Folgenden wird ein Teil des Bytecodes der Methode case1 abgefangen und mit dem Quellcode verglichen, um die Bedeutung jeder Anweisung darin zu kommentieren

Einführung in Methoden und Verwendung der Klassen Date und SimpleDateFormat zur Verarbeitung von Zeit in Java Einführung in Methoden und Verwendung der Klassen Date und SimpleDateFormat zur Verarbeitung von Zeit in Java Apr 21, 2023 pm 03:01 PM

1. Einführung Die Date-Klasse im Paket java.util stellt eine bestimmte Zeit dar, die auf Millisekunden genau ist. Wenn wir unsere Date-Klasse verwenden möchten, müssen wir unsere Date-Klasse einführen. Das direkte Schreiben des Jahres in die Date-Klasse führt nicht zum korrekten Ergebnis. Da das Datum in Java ab 1900 berechnet wird, erhalten Sie das gewünschte Jahr, solange Sie den ersten Parameter mit der Anzahl der Jahre seit 1900 ausfüllen. Der Monat muss um 1 subtrahiert werden und der Tag kann direkt eingefügt werden. Diese Methode wird selten verwendet und die zweite Methode wird häufig verwendet. Bei dieser Methode wird eine Zeichenfolge, die einem bestimmten Format entspricht, z. B. jjjj-MM-tt, in Daten vom Typ „Datum“ konvertiert. Definieren Sie zunächst ein Objekt vom Typ Datum

So erhalten Sie die Millisekundendarstellung eines Datums mithilfe der getTime()-Methode der Date-Klasse So erhalten Sie die Millisekundendarstellung eines Datums mithilfe der getTime()-Methode der Date-Klasse Jul 24, 2023 am 11:42 AM

So erhalten Sie eine Millisekundendarstellung des Datums mit der Methode getTime() der Date-Klasse. In Java ist die Date-Klasse eine Klasse, die zur Darstellung von Datum und Uhrzeit verwendet wird. Es bietet viele nützliche Methoden zum Bearbeiten und Abrufen von Informationen über Datumsobjekte. Unter diesen ist die Methode getTime() eine wichtige Methode in der Date-Klasse, die die Millisekundendarstellung des Datumsobjekts zurückgeben kann. Als nächstes werden wir detailliert beschreiben, wie Sie diese Methode verwenden, um die Millisekundendarstellung eines Datums zu erhalten, und entsprechende Codebeispiele bereitstellen. Verwendung der Date-Klasse

Welche Optionen gibt es für Kalender- und Datumsbibliotheken in Python? Welche Optionen gibt es für Kalender- und Datumsbibliotheken in Python? Oct 21, 2023 am 09:22 AM

Es gibt viele hervorragende Kalenderbibliotheken und Datumsbibliotheken in Python, die uns bei der Abwicklung datums- und kalenderbezogener Vorgänge helfen können. Als Nächstes stelle ich Ihnen einige gängige Optionen vor und stelle entsprechende Codebeispiele bereit. Datetime-Bibliothek: Datetime ist das integrierte Datums- und Uhrzeitverarbeitungsmodul von Python. Es bietet viele datums- und zeitbezogene Klassen und Methoden, mit denen Datums- und Uhrzeitangaben, Zeitunterschiede und andere Vorgänge verarbeitet werden können. Beispielcode: importdatetime#Erhalten Sie das aktuelle Datum

See all articles