本日  昨日
 
03/16(Sun) 02:30

日付や時間の表示の仕方(CGI方式)

CGIプログラムの中で日付や時間の表示をするには、CGIプログラムの中に下のようなプログラムを組み込みます。(赤字部分がCGIプログラムに組み込む命令になります)

日付や時間の取得

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime(time + 9*3600); $year = $year + 1900;

月・曜日の修正

上記のgmtimeで取得した$monには0から11までの数字が入るので修正処理をします。

  1. 数字で表示する
    • 1から12へ修正
      $month = ($mon + 1);
    • 時刻を2桁に統一する処理
      if ($month < 10) { $month = "0$month"; }
      if ($mday < 10) { $mday = "0$mday"; }
      if ($sec < 10) { $sec = "0$sec"; }
      if ($min < 10) { $min = "0$min"; }
      if ($hour < 10) { $hour = "0$hour"; }

  2. またはそれぞれに値を入力する(この場合は月の2桁統一処理は不要)
    $m0="Jan"; $m1="Feb"; $m2="Mar"; $m3="Apr"; $m4="May"; $m5="Jun"; $m6="Jul"; $m7="Aug"; $m8="Sep"; $m9="Oct"; $m10="Nov"; $m11="Dec";
    $month = ($m0,$m1,$m2,$m3,$m4,$m5,$m6,$m7,$m8,$m9,$m10,$m11) [$mon];
曜日変換処理

$wdayには0から6までの数字が入り曜日に対応しています。

  1. 日本語表示
    $y0="日"; $y1="月"; $y2="火"; $y3="水"; $y4="木"; $y5="金"; $y6="土";
  2. 英語表示(1)
    $y0="Sunday"; $y1="Monday"; $y2="Tuesday"; $y3="Wednesday"; $y4="Thursday"; $y5="Friday"; $y6="Saturday";
  3. 英語表示(2)
    $y0="Sun"; $y1="Mon"; $y2="Tue"; $y3="Wed"; $y4="Thu"; $y5="Fri"; $y6="Sat";

    $youbi = ($y0,$y1,$y2,$y3,$y4,$y5,$y6) [$wday];

時刻フォーマット

  1. 日本語表示(1)
    $date_now = "$month月$mday日($youbi)$hour時$min分$sec秒";
  2. 日本語表示(2)
    $date_now = "$year年$month月$mday日 $hour時$min分$sec秒";
  3. 英語表示(1)
    $date_now = "$year/$month/$mday $hour:$min:$sec";
  4. 英語表示(2)
    $date_now = "$month/$mday($youbi) $hour:$min";
ブラウザへの表示
print $date_now;

CGIプログラムサンプル

表示結果は、今日は97年07月26日(土)9時23分05秒です。になります。この例のようにフォーマットの中に文章を挿入することもできます。

#!/usr/bin/perl
print "Content-type: text/html\n\n";
;#####################################################
;#
;#  日付、時間表示  by kikuchisan
;#
;#####################################################

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime(time + 9*3600);
$year = $year + 1900;
# 月の修正処理
$month = ($mon + 1);

# 時刻を2桁に統一する処理
if ($month < 10) { $month = "0$month"; }
if ($mday < 10)  { $mday  = "0$mday";  }
if ($sec < 10)   { $sec   = "0$sec";   }
if ($min < 10)   { $min   = "0$min";   }
if ($hour < 10)  { $hour  = "0$hour";  }

# 曜日変換処理
$y0="日"; $y1="月"; $y2="火"; $y3="水"; $y4="木"; $y5="金"; $y6="土";
$youbi = ($y0,$y1,$y2,$y3,$y4,$y5,$y6) [$wday];

# 時刻フォーマット
$date_now = "今日は$year年$month月$mday日($youbi)$hour時$min分$sec秒です。";

# 表示
print $date_now;

 
 
©1997- Kikuchisan's workshop All rights reserved //

スポンサーリンク

関連コンテンツ