ホームページ  >  記事  >  バックエンド開発  >  SQLSERVER の 2 つの関数: dateadd()、datediff() をシミュレートする_PHP チュートリアル

SQLSERVER の 2 つの関数: dateadd()、datediff() をシミュレートする_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:03:371015ブラウズ

//ファイル名: date.inc.php3
//これら 2 つの関数を使用する前に、まず日付または日付時刻をタイムスタンプ型に変換する必要があります。
//例:
//$today=mktime(0,0,0,date("m"),date("d"),date("Y"));

/****sqlserver での dateadd 関数のシミュレーション************
$part 型: 文字列
値の範囲: 年、月、日、時、分、秒
表す: 日付のどの部分を反映するか追加される
$n 型: 数値
表す: どれだけ増加するか、どの部分を追加するかは $part に基づいて決定されます
負の数も可能です
$datetime 型: timestamp
表す: 増加のベース
戻り値の型:タイムスタンプ
*********** ***終了************* * /
function dateadd($part,$n,$datetime){
$year=date("Y",$datetime);
$month=date("m",$datetime);
$day=date( " d",$datetime);
$hour=date("H",$datetime);
$min=date("i",$datetime);
$sec=date("s",$datetime);
$part=strto lower($part);
$ret=0;
switch ($part) {
case "年":
$year+=$n;
break;
case "月":
$month+=$ n ;
休憩;
ケース "日":
$day+=$n;
休憩;
ケース "時間":
$hour+=$n;
休憩;
ケース "分":
$min+=$n;
break;
case "sec":
$sec+=$n;
break;
default:
return $ret;
break;
}
$ret=mktime($hour,$min,$sec,$month, $ day,$year);
return $ret;
}

/****sqlserver で datediff 関数をシミュレートします*************
$part 型: 文字列
値の範囲: 年、月、日、時、分、秒
表す: 日付のどの部分を参照するかadd
$date1 ,$date2 型: timestamp
表す: 比較する 2 つの日付
戻り値の型: Numeric
**************End*(********* ****/
function datediff($part,$date1,$date2){
//$diff=$date2-$date1;
$year1=date("Y",$date1);
$year2=date("Y",$date2);
$month2=date("m",$date2);
$month1=date("m " ,$date1);
$day2=date("d",$date2);
$day1=date("d",$date1);
$hour2=date("d",$date2);
$ hour1 =date("d",$date1);
$min2=date("i",$date2);
$min1=date("i",$date1);
$sec2=date("s", $ date2);
$sec1=date("s",$date1);

$part=strto lower($part);
$ret=0;
switch ($part) {
case "year":
$ ret =$year2-$year1;
break;
case "月":
$ret=($year2-$year1)*12+$month2-$month1;
break;
case "日":
$ret= ( mktime(0,0,0,$month2,$day2,$year2)-mktime(0,0,0,$month1,$day1,$year1))/(3600*24);
break;
case "時間 ":
$ret=(mktime($hour2,0,0,$month2,$day2,$year2)-mktime($hour1,0,0,$month1,$day1,$year1))/3600;
Break ;
case "min":
$ret=(mktime($hour2,$min2,0,$month2,$day2,$year2)-mktime($hour1,$min1,0,$month1,$day1,$ year1 ))/60;
break;
case "sec":
$ret=$date2-$date1;
break;
default:
return $ret;
break;
}
return $ret;
}
? >

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/316193.html技術記事 ?php //ファイル名: date.inc.php3 //これら 2 つの関数を使用する前に、まず日付または日付時刻をタイムスタンプ型に変換する必要があります。 //例: //$today=mktime(0,0,0,date(m),date(d),date(Y)) /...
;
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。