ホームページ  >  記事  >  バックエンド開発  >  phpとMySqlで時差を計算する方法のコード例

phpとMySqlで時差を計算する方法のコード例

怪我咯
怪我咯オリジナル
2017-07-10 09:42:361256ブラウズ

PHPで時差を計算するのは面倒なこともありますが、日付と時刻関数の使い方をマスターすれば簡単になります。

最近、私は自分の愛のスカーフを研究していたとき、恋に落ちた日数を計算する必要がありました。これには、PHP が毎日の日付に基づいて計算する必要があります。この日付の計算を実現するためのいくつかの方法について説明します。 1) データベースがある場合 MSSQL であれば、日付の差を計算する関数 datediff() を使用するだけで簡単です! MYSQL であれば、2 つの日付フィールドの差を使用して計算します。結果を別の数値フィールドに保存します! 必要なときに呼び出すだけです!

(2) データベースがない場合は、php の時刻と日付の関数を使用する必要があります 以下が主な説明です。 : 例: 1998 年 5 月 3 日から 1999 年 6 月 5 日までの時間を計算します。 日数:


コードは次のとおりです。

$startdate=mktime("0","0","0","5","3","1998"); $enddate=mktime("0","0","0","6","5","1999"); //所得到的值为从1970-1-1到参数时间的总秒数结果是整数.那么下面的代码就好编多了 
$days=round(($enddate-$startdate)/3600/24) ; 
echo $days;

$days は、mktime() のパラメーターが次の場合に取得される日数です。デフォルトでは、現在の日付を使用することを意味し、本を借りた日からの日数を計算できます。

最後に、SQL 計算方法について説明します。

DateDiff 関数
説明: 2 つの日付間の時間間隔を返します。
構文:


コードは次のとおりです:

DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear>)

間隔: 必須。 date1 と date2 の間の時間間隔を示す

String

expression

。値については、「設定」セクションを参照してください。 日付1、日付2: 必須。日付式。計算に使用される 2 つの日付。 週の最初の日: オプション。週の最初の曜日を指定する定数。指定しない場合、デフォルトで日曜日が設定されます。値については、「設定」セクションを参照してください。

年の最初の週: オプション。年の最初の週を指定する定数。指定しない場合、デフォルトで 1 月 1 日の週が設定されます。値については、「設定」セクションを参照してください。

interval パラメーターには次の値を指定できます:
yyyy (年)、q (四半期)、m (月)、y (年間の日数)、d (日)、w (週の日数) )、ww (週)、h (時)、n (分)、s (秒)

firstdayofweek パラメータには次の値を指定できます:
(以下は: 定数値の説明)
vbUseSystem 0 地域言語サポートを使用します ( NLS) API 設定。
vbSunday 1 日曜日 (デフォルト)
vb月曜日 2 月曜日
vb火曜日 3 火曜日
vb水曜日 4 水曜日
vb木曜日 5 木曜日
vb金曜日 6 金曜日
vb土曜日 7 土曜日
firstweekofyear パラメータには次の値を指定できます:
(以下は: 定数値 説明) )
vbUseSystem 0 ロケール言語サポート (NLS) API 設定を使用します。
vbFirstJan1 1 1 月 1 日の週から始まります (デフォルト)。
vbFirstFourDays 2 は、新年の最初の週が少なくとも 4 日あることから始まります。
vbFirstFullWeek 3 は新年の最初の丸一週間から始まります。

説明: DateDiff 関数は、2 つの日付の間に存在する指定された時間間隔の数を決定するために使用されます。たとえば、DateDiff を使用して、2 つの日付の間の日数、または今日と年の最後の日の間の週数を計算できます。

date1 と date2 の間の日数を計算するには、「年間日数」(「y」) または「日数」(「d」) を使用できます。間隔が「曜日」(「w」) の場合、DateDiff は 2 つの日付の間の週数を返します。 date1 が月曜日の場合、DateDiff は date2 までの月曜日の数をカウントします。この結果には date2 は含まれますが、date1 は含まれません。間隔が「週」(「ww」) の場合、DateDiff 関数はカレンダー テーブル内の 2 つの日付の間の週数を返します。関数は、date1 と date2 の間の日曜日の数をカウントします。 DateDiff は、date2 が日曜日の場合は date2 を評価しますが、date1 が日曜日の場合でも date1 は評価しません。

date1 が date2 より後の場合、DateDiff 関数は負の数を返します。
firstdayofweek パラメーターは、「w」と「ww」の区切り記号を使用した計算に影響します。

date1 または date2 が日付リテラルの場合、指定された年は日付の固定部分になります。ただし、date1 または date2 を引用符 (" ") で囲み、年を省略した場合、コード内で date1 または date2 式が評価されるたびに現在の年が挿入されます。これにより、異なる年にわたって機能するプログラム コードを作成することが可能になります。

間隔が "年" ("yyyy") の場合、12 月 31 日と翌年の 1 月 1 日を比較します。実際にはその差は 1 日だけですが、DateDiff は 1 年の差を示す 1 を返します。

DatePart 関数

説明: 指定された日付の指定された部分を返します。
文法:


コードは次のとおりです:

DatePart(interval, date[, firstdayofweek[, firstweekofyear>)

DatePart: 函数的语法有以下参数:

interval: 必选。字符串表达式,表示要返回的时间间隔。有关数值,请参阅“设置”部分。

date: 必选。要计算的日期表达式。

firstdayof week: 可选。指定星期中的第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。

firstweekofyear: 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。

interval 参数可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒)

firstdayofweek 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周(不跨年度)开始。

说明:DatePart 函数用于计算日期并返回指定的时间间隔。例如使用 DatePart 计算某一天是星期几或当前的时间。

firstdayofweek 参数会影响使用“w”和“ww”间隔符号的计算。
如果 date 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date 被包含在引号 (” “) 中,并且省略年份,则在代码中每次计算 date 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码!

以上がphpとMySqlで時差を計算する方法のコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。