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; } } ?>?

ThesecrettokeepingaPHP-poweredwebsiterunningsmoothlyunderheavyloadinvolvesseveralkeystrategies:1)ImplementopcodecachingwithOPcachetoreducescriptexecutiontime,2)UsedatabasequerycachingwithRedistolessendatabaseload,3)LeverageCDNslikeCloudflareforservin

You should care about DependencyInjection(DI) because it makes your code clearer and easier to maintain. 1) DI makes it more modular by decoupling classes, 2) improves the convenience of testing and code flexibility, 3) Use DI containers to manage complex dependencies, but pay attention to performance impact and circular dependencies, 4) The best practice is to rely on abstract interfaces to achieve loose coupling.

Yes,optimizingaPHPapplicationispossibleandessential.1)ImplementcachingusingAPCutoreducedatabaseload.2)Optimizedatabaseswithindexing,efficientqueries,andconnectionpooling.3)Enhancecodewithbuilt-infunctions,avoidingglobalvariables,andusingopcodecaching

ThekeystrategiestosignificantlyboostPHPapplicationperformanceare:1)UseopcodecachinglikeOPcachetoreduceexecutiontime,2)Optimizedatabaseinteractionswithpreparedstatementsandproperindexing,3)ConfigurewebserverslikeNginxwithPHP-FPMforbetterperformance,4)

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 Chinese version
Chinese version, very easy to use

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Zend Studio 13.0.1
Powerful PHP integrated development environment

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool
