サンプル集  >  PHP  >  日付の計算
日付の計算
2023/07/31

日付の計算を動かしたところエラーが出ました。

◆環境
OS Windows 10 Home 21H2 (64bit)
PHP 8.0.12

エラー内容は以下の通りです。

>php php012.php
PHP Fatal error:  Uncaught Error: Undefined constant "hours" in php01
2.php:6
Stack trace:
#0 {main}
  thrown in php012.php on line 6

Fatal error: Uncaught Error: Undefined constant "hours" in php012.php
:6
Stack trace:
#0 {main}
  thrown in php012.php on line 6

$todayの添え字にhoursなど文字が指定していますが、文字列として扱うため ' (シングルクォーテーション)で囲む必要がありそうです。

php012-2.php
 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
<?php
    // 今日の日付を取得
    $today=getdate();

    // UNIXのタイムスタンプを取得
    $date=mktime($today['hours']
                ,$today['minutes']
                ,$today['seconds']
                ,$today['mon']
                ,$today['mday']
                ,$today['year']
                );

    // n日後を計算
    $new_date=$date+($argv[1]*60*60*24);

    echo "今日\t".date("Y-m-d H:i:s", $date)."\n";
    echo $argv[1]."日後\t".date("Y-m-d H:i:s", $new_date)."\n";
?>

>php php012-2.php 1
今日    2023-07-31 10:12:34
1日後   2023-08-01 10:12:34

>php php012-2.php 10
今日    2023-07-31 10:12:37
10日後  2023-08-10 10:12:37

>php php012-2.php 100
今日    2023-07-31 10:12:39
100日後 2023-11-08 09:12:39

期待通りに動作しました。
もともとのソースでは動かなそうなので当時は動いたのか疑問です。

▲ PageTop ■ Home


Copyright (C) 2023 ymlib.com