00月00日00時00分→0000年00月00日00時00分

このQ&Aのポイント
  • 質問文章中の日時表記を西暦年表示に変換する方法について教えてください
  • 質問文章の日時表記を00年00月00日00時00分形式に変換したいです
  • 西暦年を含めた日時表記に変換する方法を教えてください
回答を見る
  • ベストアンサー

00月00日00時00分→0000年00月00日00時00分

すみません。 これを、西暦年表示を加えたものにしたいのですが、どうすればよかったでしょうか…。 見本:  2007年01月04日12時59分 *-*-*-*-*-*-*-* sub time_get { @ts = localtime(time); # $ts[4]月:$ts[3]日:$ts[2]時: $ts[1]分 $tm = time; $ts[4]++; $ts[5] = $ts[5] +1900; if ($ts[1] < 10) { $ts[1] = "0$ts[1]"; } if ($ts[2] < 10) { $ts[2] = "0$ts[2]"; } if ($ts[3] < 10) { $ts[3] = "0$ts[3]"; } if ($ts[4] < 10) { $ts[4] = "0$ts[4]"; } $ad = $ENV{'REMOTE_ADDR'}; $ip = $ad . gethostbyaddr(pack("C4",split(/\./,$ad)),2); *-*-*-*-*-*-*-* sub rank_in { $file_name = "list1.txt"; &file_read; $now_tm = "$ts[4]/$ts[3] $ts[2]:$ts[1]"; foreach $line (@data) { ($k,$i,$name,$ips,$j) = split(/,/,$line); if ($ip eq $ips || $name eq $FORM{name}) { $line =""; if( $gt > $k ) { $gt=$k; $now_tm = $i; } } push(@rank,$line); } @data = @rank; $t=$FORM{total}; $line = substr( " $t" , length $t, 10); if($FORM{home} eq 'http://'){$FORM{home} ='';} $line = "$line,$now_tm,$FORM{name},$FORM{comt},$FORM{home},$ip,\n"; push(@data,$line); push(@data,"end"); @data = sort(@data); @rank =(); $i=0; foreach $line (@data) { if (++$i == $rank_save || $line eq "end" ) { last; } push(@rank,$line); } @data = @rank; &write_file; }

  • nuoh
  • お礼率66% (367/548)
  • CGI
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

すいません、訂正します。 誤) $now_tm = ("%04d/%02d/%02d %02d:%02d", $ts[5], $ts[4], $ts[3], $ts[2], $ts[1]); 正) $now_tm = sprintf("%04d/%02d/%02d %02d:%02d", $ts[5], $ts[4], $ts[3], $ts[2], $ts[1]);

nuoh
質問者

お礼

おお! 素早い回答、おおきにです! では、ちょっとやってみますね。

その他の回答 (1)

回答No.1

なんか面倒なことしてますね。 以下の部分を削除して、 if ($ts[1] < 10) { $ts[1] = "0$ts[1]"; } if ($ts[2] < 10) { $ts[2] = "0$ts[2]"; } if ($ts[3] < 10) { $ts[3] = "0$ts[3]"; } if ($ts[4] < 10) { $ts[4] = "0$ts[4]"; } $now_tmの行をこれに変えればいけるんじゃないでしょうか。 $now_tm = ("%04d/%02d/%02d %02d:%02d", $ts[5], $ts[4], $ts[3], $ts[2], $ts[1]);

関連するQ&A

  • 一致する文字としない文字があるのですが

    会員のログイン等で、氏名(漢字)と生年月日でログインするように してあるのですが、「眞」や「はしご高」などの文字が、 フォームで渡ってきた場合に、 データと一致しなくエラーとなってしまいます。 if (!open(IN,"$file")) { &error('データベースエラー','.'); } @BASE = <IN>; $all = @BASE; close(IN); if ($FORM{'FF'} eq '') { $FF = 0; } else { $FF = $FORM{'FF'}; } $TO = $FF + $page - 1; if ($TO > $#BASE) { $TO = $#BASE; } $hit = 0; $next_num = ''; foreach $num ($FF .. $#BASE) { $data = $data2 = $BASE[$num]; &jcode'convert(*data,'euc'); ($d,$NO,$REM,$DATE,$NAME,$EMAIL,$PMAIL,$AGE,$SEX,$PREF) = split(/\,/,$data); # 名前(一致) if ($NAME5 ne 'dadada') { if ($NAME eq $FORM{'NAME'} ) { ; } else { next; } } # 生年月日(一致) if ($AGE5 ne 'kakak') { if ($AGE eq $FORM{'AGE'} ) { ; } else { next; } } # 検索終了処理 if ($hit == $page) { $next_num = $num; last; } else { push(@NEW,$data2); $hit++; } } と検索の部分はなっております。 エラーが出る漢字は少ないのですが、 ログインできないお客様がいて困っています。 なにか対処方法はございますでしょうか? 何卒、宜しくお願い致します。

    • 締切済み
    • CGI
  • Perl BBS 掲示板 改行処理

    改行処理について教えてください。 今まで書き込み処理で unshift @DATA, "$tm,$FORM{'name'},$FORM{'title'},$FORM{'text'}\n"; としていたのですが、これを use CGI; my $form = new CGI; my $NAME = $form->param('name'); my $TITLE = $form->param('title'); my $TEXT = $form->param('text'); unshift(@DATA,"$tm,$NAME,$TITLE,$TEXT\n"); に変更しました。 すると sub loadFormdata が聞かなくなり、 改行処理他が対応しなくなってしまいました、 この場合、 loadFormdataの部分のどこを変えればよいでしょうか? |------書き込み処理------| sub printdata{ use CGI; my $form = new CGI; &loadFormdata(); open(FILE, "<$FILE"); eval{ flock(FILE, 1) }; @DATA = <FILE>; close FILE; my $tm = time; my $NAME = $form->param('name'); my $TITLE = $form->param('title'); my $TEXT = $form->param('text'); unshift(@DATA,"$tm,$NAME,$TITLE,$TEXT\n"); while(@DATA > $MAX) { pop @DATA; } open(FILE, ">$FILE") or die("error :$!"); eval{ flock(FILE, 2) }; print FILE @DATA; close FILE; } |------改行処理他------| sub loadFormdata { my ($query, $pair); if($ENV{'REQUEST_METHOD'} eq 'POST') { read(STDIN, $query, $ENV{'CONTENT_LENGTH'}); } else { $query = $ENV{'QUERY_STRING'}; } foreach $pair (split(/&/, $query)) { my $key = ("$NAME,$TITLE,$TEXT"); my ($key, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([0-9a-fA-F][0-9a-fA-F])/chr(hex($1))/eg; $value =~ s/&/&amp;/g; $value =~ s/</&lt;/g; $value =~ s/>/&gt;/g; $value =~ s/\x0D\x0A\s*/<br>/g; $value =~ s/\s+/ /; $FORM{$key} = $value; } }

    • ベストアンサー
    • Perl
  • Perl BBS掲示板 サーバ側のファイル削除

    いつもお世話になっております。 サーバ側のファイルを削除したいのですが、 どのようにすればいいのでしょうか・・・? #-----------------------------------------DELETE sub deletedata { use CGI; my $form = new CGI; my $tm = time; my $DELETE = $form->param('pass'); my $NO = $form->param('no'); my $NAME = TransFormdata($form->param('name')); my $TITLE = TransFormdata($form->param('title')); my $TEXT = TransFormdata($form->param('text')); my $img = TransFormdata($form->param('img')); open(FILE, "<$FILE") or die("error :$!"); eval{ flock(FILE, 1) }; @DATA = <FILE>; close FILE; my $DELETE = $form->param('pass'); my $NO = $form->param('no'); if(length $NO == 0) {} elsif($DELETE eq $PASSWORD) { deleteImg($NO); splice @DATA, $NO, 1; } else{} open(FILE, ">$FILE") or die("error :$!"); eval{ flock(FILE, 2) }; print FILE @DATA; close FILE; &endform } #-----------------------------------------DELETE #-----------------------------------------UPFILEDELETE sub deleteImg { my ($NO,$tm,$NAME,$TITLE,$TEXT,$imgname) = split(/,/, $DATA[$_[0]]); $filename = $DIR . $imgname; if(-e $imgname) { unlink $filename; } } #-----------------------------------------UPFILEDELETE ラジオボタン選択 ↓ パスワード入力 ↓ 削除ボタン ↓ 削除 この段階で テキストファイルの指定行は削除されているのですが、 画像が投稿され、サーバー側に残っているファイルも削除させたいのです。 Unlinkを使うとなっていたのですが・・・わからないです。 どうかご教示お願い致しますm(;;)m

    • ベストアンサー
    • Perl
  • データベースに削除機能を追加しようと思ったのですがうまく削除されなく困っています

    データベースの出入力は出来たのですが 新たに削除機能を追加しようと思っています。 私的にはこのようなイメージでつくったつもりなのですが・・・ -------------------------------------- dat.csvの中みが下記とします。 りんご バナナ スイカ メロン 削除フォームにバナナを打ち込み実行するとバナナが削除され繰上げされる。 りんご スイカ メロン -------------------------------------- 判る範囲で組んでみたのですが 全て削除してしまったり、上から順番に削除してしまったり、削除機能自体が機能しなくなったりと 困っています。 何方か知恵を貸して頂ければと思います。 宜しくお願いいたします。 ■現状のソース <?php if($_POST["dell"]){ $dele = $_POST["dele_ad"]; $Data=file("dat.csv"); for($i=0;$i<sizeof($Data);$i++){ $dele_ad = explode(",",$Data[$i]); if($dele_ad == $dele ){ array_splice($dele_ad,$i,1); } } $fp=fopen("dat.csv","w"); flock($fp, LOCK_EX); foreach($Data as $line)fputs($fp,$line); fclose($fp); print "削除しました"; } ?> <form action="<?=$_SERVER[ "PHP_SELF" ]?>" method="POST"> <input name="dele_ad" type="text" value="" size="40"> <input type="submit" name="dell" value="削除"> </form>

    • ベストアンサー
    • PHP
  • 要素を削除する最適な方法

    たいへん困っています。Perlでプログラムを作成しており配列要素の削除を行なおうとしています。 例えば下のようなデーターをdata.txtファイルに保存しているとしてください。 1,洋服,婦人服,子供服,男性服, 2,時計, 3,アクセサリ, 上のデーターで1行目にある子供服を削除して 1,洋服,婦人服,男性服, 2,時計, 3,アクセサリ, のようにずらしたいのです。 私がとった方法はデーターをopenで開きforeachで行をまず呼びこみます。 if(!open(DATA,"$data")){&error('ファイル読み取りエラー。'); } else{ @data=<DATA>; close(DATA); } foreach $line (@data){ chomp $line; ($no,@sub)=split(/,/,$line); if($no eq 1){ $i=-1; foreach (@sub){$i++; if($sub[$i] eq '子供服'){next;} else{push @newsub,"$sub[$i]";next; } } push @newline,"$no,@newsub\n";} else{push @newcline,"$line\n";} } これで@newlineを表示すると 1,洋服,婦人服, 男性服, 2,時計, 3,アクセサリ, のように男性の前の部分が半角空白として保存されます。 どうしてなのでしょうか?そもそもこういったやり方が間違っているのか、それとも一部だけまちがっているのかもわかりません。お手数ですがどなたか教えてください。

    • ベストアンサー
    • Perl
  • CSVデータの編集の際の重複チェックの方法

    今、data.csv(カンマ区切り)として、左から順位、名前、性別という3項目で、10人程度のリストデータがあります。 data.csv(カンマ区切り)を編集するようにしていますが、順位は重複してはならないので、重複していたらエラーを出したいのですが。。。 ($rank,$name,$sex) = split(/\,/,$line); です。 open(IN,"$logfile") || &error("ファイルが開けません"); @lines = <IN>; close(IN); # 情報の書換え foreach $line (@lines) { ($rank,$name,$sex) = split(/\,/,$line); $line = "$in{'rank'},$name,$sex\n";} push(@new,$line); } # ファイルを更新 open(OUT,">$logfile") || &error("ファイルが開けません"); print OUT @new; close(OUT);

  • データを読み込んだ時・・・・

    すいません。初心者です。以下のようにデータを読み込んだとき、ifの条件部分 $form{'user'} eq $userid と、 $form{'kojimail'} eq $mail は、 ちゃんと判定してくれるのですが、 「$hantei eq $hanteiari」 は、判定しません. たぶん何かが違うんだと思いますが・・・・(>_<) 読み込んだデータ $hanteiari は、データベース内で、hanteiari と入力されています。何卒よろしく御願いします。 ★データベース情報 登録ID:名前:メールアドレス:性別:年齢:hanteiari:認証ID ★CGI #!/usr/local/bin/perl require 'cgi-lib.pl'; &ReadParse(*form); require 'jcode.pl'; &jcode'convert(*form, 'sjis'); open(ENQ, "<enquete.dat") || die "File 'enquete.dat' Open Error."; @dad= <ENQ>; $hanteiari= "hanteiari" foreach(@dad){ ($userid, $name, $mail, $sex, $age, $hantei, $kuuhaku )=split(/:/, $_); #ここです↓ if( $form{'user'} eq $userid && $form{'kojimail'} eq $mail && $hantei eq $hanteiari) {$ari =+10;} } if($ari< 5 ){ $atari =20;} close(ENQ);

    • ベストアンサー
    • CGI
  • 全文検索ではなく、必要なデータ(複数フィールド)のみを検索するにはどうしたらいいですか?

    はじめまして、まだCGI初心者なものでよくわからないですが教えてください。 あるCGI関連の書籍に付属のCD内に修められた顧客データベースを改造しているところです。このデータベースはCSVデータの全ての情報を検索して結果を表示するものなのですが、これを「備考($ message)以外の情報を全て検索して結果を表示する」とするにはどのように改造したらよろしいでしょうか。備考は検索しないけれど、他の情報は全て検索して結果を表示させるということです。ただし、結果として表示される画面には備考($ message)の内容も表示させたいのです。 検索に関わる箇所を抜き出すと次のようになります。初心者なので説明がうまくできていないと思いますが、ご解答できる方々は是非ともご教授お願いいたします。 ############################ # 初期画面、検索結果表示 ############################ sub html { open(IN,"$file") || &error(100,'ファイルをオープンできません'); @DB = <IN>; close(IN); @DB = reverse(@DB); if ($FORM{'action'} eq "search") { $kw = $FORM{'kw'}; &jcode::convert(*kw,'euc'); foreach $line (@DB) { $value = $line; if ($kw =~ m/[\*\{\}\=\&\@\~\>\<\#\%\"\'\`\(\)\[\]\\\/\:\;\_\,]/){ &error(101,'検索キーが不適切です'); } &jcode::convert(*value,'euc'); if ($value =~ /$kw/i){ push(@HIT,$line); } } }else{ @HIT = @DB; } print "Content-type: text/html\n\n"; print <<"EOL"; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp"> <title>$title</title> @style </head> <body> <div align="center"> <p class="title">$title</p> <p class="text"><b>|</b><a href="$HomeUrl">ホームページ</a><b>|</b></p> <form method="post" action="$reload"> <input type="hidden" name="action" value="write"> <input type="submit" value="データベースに書き込む" class="buttonsmall"> </form> <form method="post" action="$reload"> <input type="hidden" name="action" value="search"> <table border="0" cellspacing="0" cellpadding="2"> <tr> <td> <p class="text">名前、ユーザー名他、備考文の文字検索ができます。</p> </td> </tr> <tr> <td> <table border="0" cellspacing="0" cellpadding="2"> <tr valign="bottom"> <td> <input type="text" name="kw" size="30" class="textarea"> </td> <td> <input type="submit" value="検索" class="buttonsmall"> </td> </tr> </table> </td> </tr> </table> </form> EOL if ($FORM{'line'} eq ''){ $line = 0; }else{ $line = $FORM{'line'}; } $data_count = @HIT - 1; $view_end = $line + ($view-1); if ($view_end >= $data_count){ $view_end = $data_count; } foreach ($line .. $view_end) { ($date_now,$number,$name,$email,$hp,$message,$tiku,$yuza,$tel,$fax,$busho) = split(/\,/,$HIT[$_]); $message =~ s/\r/<br>/g; print <<"EOL"; ############################

    • ベストアンサー
    • Perl
  • foreachで多次元配列を生成

    こんにちわ。 配列をforeachでループさせて、それを多次元配列に入れていくことは可能でしょ うか? 例えば以下のようなデータがあるとします。 ---meibo.dat-------- c21<>田中<>21<>東京 c22<>佐藤<>22<>大阪 -------------------- ---test.php----------------------------------------------------- <? $list_meibo = file("meibo.dat"); foreach($list_meibo as $temp){    $i=split("<>",$temp);    $a=array($i[0] => array("name"=>$i[1],"age"=>$i[2],"ad"=>$i[3]),); } ?> ------------------------------------------------------------------- これでは $a=array("c21"=>array("name"=>"田中","age"=>"21","ad"=>"東京"), "c22"=>array("name"=>"佐藤",age"=>"21","ad"=>"大阪"),); という具合になってくれないでしょうか? これでいくと、配列の最後の要素のみデータに残ります。 どのようにしたらよいでしょうか? ご教授お願いします。

    • ベストアンサー
    • PHP
  • ファイル選択と同時にアップロード HTML+JS

    HTMLとJava Scriptのことを質問させてください <form>タグからファイルを選択すると同時をアップロードしたいと思っています。 複数の「ファイルを選択ボタン」を設置し、それぞれ"001.jpg"、"002.jpg"など指定の名前でアップロードしたいです。 下記のようにいくつかの<form>タグを設置し、javascriptでコントロールできるかと思いケース1のように書いた場合はうまくいったのですが、ケース2のように複数並べて記述した場合、動かなくなり困っております。 どなたか教えていただけないでしょうか? よろしくお願いいたします ケース1) <form id="upload_file1" action="file_upload.php" method="post" enctype="multipart/form-data" target="upload_frame">    <input type="hidden" name="picture_id" value="001.jpg" />    <input type="file" id="file_id_1" name="file_name" accept="image/jpeg"> </form> <form id="upload_file2" action="file_upload.php" method="post" enctype="multipart/form-data" target="upload_frame">    <input type="hidden" name="picture_id" value="002.jpg" />    <input type="file" id="file_id_2" name="file_name" accept="image/jpeg"> </form> <script> var form = document.getElementById("upload_file1"); var input = form.file_name; input.onchange = function (){ if(this.value){ form.submit(); } }; </script> ケース2) <form id="upload_file1" action="file_upload.php" method="post" enctype="multipart/form-data" target="upload_frame">    <input type="hidden" name="picture_id" value="001.jpg" />    <input type="file" id="file_id_1" name="file_name" accept="image/jpeg"> </form> <form id="upload_file2" action="file_upload.php" method="post" enctype="multipart/form-data" target="upload_frame">    <input type="hidden" name="picture_id" value="002.jpg" />    <input type="file" id="file_id_2" name="file_name" accept="image/jpeg"> </form> <script> var form = document.getElementById("upload_file1"); var input = form.file_name; input.onchange = function (){ if(this.value){ form.submit(); } }; var form = document.getElementById("upload_file2"); var input = form.file_name; input.onchange = function (){ if(this.value){ form.submit(); } }; </script>

専門家に質問してみよう