サンプル集 |
■VC ■C# ■Java ■BorlandC ■LinuxC ■MS-DOS ■bash ■Excel VBA ■VBScript ■PHP ■HTML ■perl ■iPhone ■Android ■Lua ■WordPress ■PowerShell ■other |
Linuxコマンド |
用語集 |
debian メモ |
apache2 メモ |
MySQL メモ |
Oracle メモ |
HOME |
日付の計算をしなければならない機会は意外と多いです。そこで計算する方法を調べます。
◆環境OS | Windows XP Professional Version 2002 Service Pack 2 |
---|---|
PHP | 5.2.4 |
日付の計算
date関数とstrftime関数で日付を取得して表示してみます。
php009.php | ||
|
◆実行結果
>php php009.php
2008-07-03 15:24:202008-07-03 15:24:20
2008-07-03 15:24:202008-07-03 15:24:20
改行を入れ忘れてしまったので日付が1行で表示されてしまいました。
文字列を日付にもできるようです。
php010.php | ||
|
◆実行結果
>php php010.php
Fatal error: Call to undefined function strptime() in php010.php on
line 2
Fatal error: Call to undefined function strptime() in php010.php on
line 2
エラーがでました。 調べたところ、この関数は Windows環境にはまだ実装されていないようです。 Linux環境で試してみます。
$ php php010.php
PHP Fatal error: Call to undefined function: strptime() in php010.php
on line 2
Fatal error: Call to undefined function: strptime() in php010.php on
line 2
PHP Fatal error: Call to undefined function: strptime() in php010.php
on line 2
Fatal error: Call to undefined function: strptime() in php010.php on
line 2
同じエラーが出ました。
phpのバージョンを確認します。
$ php --version
PHP 5.0.5 (cli) (built: Feb 9 2006 10:22:15)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.5, Copyright (c) 1998-2004 Zend Technologies
with Zend Core v1, Copyright (c) 1998-2005, by Zend Technologies
with Zend Extension Manager v1.0.9, Copyright (c)
2003-2005, by Zend Technologies
with Zend Optimizer v2.6.2, Copyright (c) 1998-2006, by Zend
Technologies
with Zend Debugger v5.1.0, Copyright (c) 1999-2006, by Zend
Technologies
PHP 5.0.5 (cli) (built: Feb 9 2006 10:22:15)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.5, Copyright (c) 1998-2004 Zend Technologies
with Zend Core v1, Copyright (c) 1998-2005, by Zend Technologies
with Zend Extension Manager v1.0.9, Copyright (c)
2003-2005, by Zend Technologies
with Zend Optimizer v2.6.2, Copyright (c) 1998-2006, by Zend
Technologies
with Zend Debugger v5.1.0, Copyright (c) 1999-2006, by Zend
Technologies
strptimeの説明みたいなページに「(PHP 5 >= 5.1.0)」って書いてありました。 phpが5.1.0以上でないといけないという事でしょうか。
mktimeで代用できるかもしれません。
php011.php | ||
|
◆実行結果
>php php011.php
2008-07-03 15:41:03
2008-07-03 15:41:03
できました。
mktimeはUNIXのタイムスタンプを返します。 これを使って日付の計算ができるようです。 今日の日付から指定された日数後の日付を表示するプログラムを作ってみます。
php012.php | ||
|
◆実行結果
>php php012.php 1
今日 2008-07-03 15:58:10
1日後 2008-07-04 15:58:10
>php php012.php 10
今日 2008-07-03 15:58:12
10日後 2008-07-13 15:58:12
>php php012.php 365
今日 2008-07-03 15:58:14
365日後 2009-07-03 15:58:14
今日 2008-07-03 15:58:10
1日後 2008-07-04 15:58:10
>php php012.php 10
今日 2008-07-03 15:58:12
10日後 2008-07-13 15:58:12
>php php012.php 365
今日 2008-07-03 15:58:14
365日後 2009-07-03 15:58:14
計算できました。
2023/07/31 追記
PHP 8.0.12でphp012.phpを実行したところエラーがでたので直しました。>>>日付の計算
▲ PageTop ■ HomeCopyright (C) 2013 - 2023 ymlib.com