[Edit][Create New]
[ IndexPage / ネットとプログラミング / CGI / 便利なスクリプト片(未整理) / date2str.pm ]

date2str.pm


package date2str;

require Exporter;
@ISA = ("Exporter");
@EXPORT = qw(date2str);

$ENV{'TZ'} = 'Asia/Tokyo';
sub date2str{
	my $format = shift;
	my $time   = shift;


	#$format = "%m/%e/%y %H:%M:%S" unless $format;
	$format = "%D %T" unless $format;
	$time = time unless $time;

	my @time = localtime($time);
	$week = $time[6];
	$month = $time[4];
	$meta{'a'} = (qw(Sun Mon Tue Wed Thu Fri Sat))[$week];
	$meta{'A'} = (qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday))[$week];
	$meta{'b'} = (qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec))[$month];
	$meta{'B'} = qw();
	$meta{'d'} = $time[3];
	$meta{'D'} = "%m/%e/%y";
	$meta{'e'} = $time[3] < 10 ? "0" . $time[3] : $time[3];
	$meta{'H'} = $time[2] < 10 ? "0" . $time[2] : $time[2];
	$meta{'I'} = $time[2] > 12 ? $time[2] - 12  : $time[2];
	$meta{'I'} = $meta{'I'}<10 ? "0" . $meta{'I'}:$meta{'I'};
	$meta{'j'} = $time[7];
	$meta{'m'} = $time[4] < 9  ? "0" . ($time[4]+1): $time[4]+1;
	$meta{'M'} = $time[1] < 10 ? "0" . $time[1] : $time[1];
	$meta{'p'} = $time[2] < 12 ? "AM" : "PM";
	$meta{'r'} = "%I:%M:%S %p";
	$meta{'S'} = $time[0] < 10 ? "0" . $time[0] : $time[0];
	$meta{'T'} = "%H:%M:%S";
	$meta{'U'} = int($time[7] / 7);
	$meta{'w'} = $time[3];
	$meta{'y'} = $time[5];
	$meta{'Y'} = 1900 + $time[5];
	$meta{'Z'} = 'JST';

	1 while ($format =~ s/\%(\w)/$meta{$1}/);
	$format;
}