投稿時間を表示させたいです。
(初心者です。意味不明な質問をしているかもしれません。その場合には自分にもまた質問をお願いします。)
PHPで簡易掲示板を作ろうとしています。
投稿時間をaモード?で書き込みがうまくいってないのか時間のデータが送られていないようです。
投稿や表面的にはうまくいっているのですが、投稿時間の表示が1970年~のやつになってしまいます。
ぜひ、皆さんのお力を貸していただきたいです。
###自分が書いているコードです
<?php define('FILENAME','./message.txt'); $now_date = null; $data = null; $file_handle = null; $split_data = null; $message = array(); $message_array = array(); $success_message = null; $error_message = array(); $clean = array(); if(!empty($_POST['btn_submit'])){ if(empty($_POST['view_name'])){ $error_message[] ='名前を入力してください。'; }else{ $clean['view_name'] = htmlspecialchars( $_POST['view_name'],ENT_QUOTES); $clean['view_name'] = preg_replace('/\r\n|\n|\r/','<br>',$clean['view_name']); } if(empty($_POST['message'])){ $error_message[] ='内容が入力されていません。'; }else{ $clean['message'] = htmlspecialchars( $_POST['message'],ENT_QUOTES); $clean['message'] = preg_replace('/\r\n|\n|\r/','<br>',$clean['massage']); } if(empty($error_messege)){ if($file_handle = fopen(FILENAME,"a")){ $now_date = new DateTime(); $data = "'".$clean['view_name']."','".$_clean['message']."','".$_now_date."'\n"; fwrite($file_handle,$data); fclose($file_handle); $success_message = '投稿完了'; } } } if($file_handle = fopen(FILENAME,'r')){ while($data = fgets($file_handle)){ $split_data = preg_split('/\'/',$data); $message = array( 'view_name' => $split_data[1], 'message' => $split_data[3], 'post_date' => $split_data[5] ); array_unshift($message_array,$message); } fclose($file_handle); } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>掲示板</title> </head> <body> <h1>掲示板</h1> <?php if(!empty($success_message)):?> <p><?php echo $success_message;?></p> <?php endif;?> <?php if(!empty($error_message)):?> <?php foreach($error_message as $value):?> <ul> <li><?php echo $value; ?></li> <?php endforeach; ?> </ul> <?php endif;?> <br> <p></p> <form method="post"> <div> <label="view_name">お名前:</label> <input id="view_name" type="text" name="view_name"/> </div> <div> <label="message">内容:</label> <textarea id="message" name="message"></textarea> </div> <input type="submit" name="btn_submit" value="送信する"/> </form> <hr> <section> <?php if(!empty($message_array)):?> <?php foreach($message_array as $value):?> <article>> <div class="info"> <h2><?php echo $value['view_name'];?></h2> <p><?php echo $value['message'];?></p> <time><?php echo date("Y年m月d日 H:i", strtotime($value['post_date'])); ?></time> </div> </article> <?php endforeach; ?> <?php endif; ?> </section> </body> </html>
試したこと
補足情報(FW/ツールのバージョンなど)
贅沢なのですが、コードつきの説明がありましたらありがたいです。
よろしくお願いいたします。
追記です。
返信や意見本当にありがとうございます。
見やすいようにある程度コードを省いて書いていたのですが伝わりずらいとおもいましたので編集でコードをすべて表示させるようにしました。(m.ts10806さんcode機能の紹介ありがとうございました。)
回答1件
あなたの回答
tips
プレビュー