質問

MySQLデータベースに保存されているコメントを作成しています。

コメントが投稿されるため、PHP Time関数time()を記録しています。そのようにして... "コメント...投稿4秒前に表示されます。"コメント... 2分前に表示されます "

これは、他のデータとともにデータベースにtime()を入力している方法:

$date=time();

// Insert data into mysql
$sql="INSERT INTO testimonials (username, comment, date) 
  VALUES ('$username', '$comment', '$date')";
.

今...私はこのようなデータをつかみます:

while ($row = mysql_fetch_row($result) )
{
  echo "<b>Random Comment</b></br>";
  echo ("<p>\n> $row[1]"); //comment
  echo ("</br>-$row[0]</p>"); //name
  echo ("</br>$row[2]"); //date
.

サーバー上の出力サンプルは次のとおりです。

ランダムなコメント

これは史上最も素晴らしいコメントのことです!!!!

- kyle

1278905319

時間 "1278905319"をどのように変換することができますか、「4秒前に投稿された」や秒数、分、時間、日数、週、月、年、年のような何かを読み取り可能な形式に変換することができますか?

はそれをする間違った方法は?私はMySQLのタイムスタンプを読みますが、私はそれを理解していません、またはそれを私の訴訟で働く方法はありません。

だから私の主な質問は、時間を出力時に読みやすい時間にフォーマットする方法です。 "2秒前"

ありがとうございます。=)

他のヒント

最初に、自動更新タイムスタンプフィールドを使用してMySQLを日付を挿入させてください。

CREATE TABLE `table_a` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(255),
  `comment` TEXT,
  `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;
.

このように、あなたのPHPコードから日付を挿入することを心配する必要はありません、そして、MySQLクライアントからのテストを行う必要はありません。たとえば、日付は正しく挿入されます。

PHP DateTimeクラス(PHPが必要) 5.3.0以上)、日付と時間をかなり簡単にしています。これはデータベースからいくつかの情報を取得し、フォーマットされた時間間隔を返す例です。

$result = $mysqli->query(
    'SELECT ' .
    '`id`, ' .
    '`username`, ' .
    '`comment`, ' .
    '`date`, ' .
    'NOW(), ' .
    'FROM table');

$row = $result->fetch_assoc();

print_r($row);
Array
(
    [id] => 1
    [username] = 'Fred'
    [comment] = 'My first post'
    [date] => 2009-09-28 07:08:12
    [now] => 2010-07-12 08:47:03
)

$now = new DateTime($row['now']);
$post = new DateTime($row['date']);
$interval = $post->diff($now);
echo $interval->format('%m months, %d days, %d days, %h hours, %m minutes, %s seconds');

// 9 months, 14 days, 14 days, 1 hours, 9 minutes, 51 seconds
.

あなたは dateInter.erval ::形式パラメータ。 MySQLがNOW()を返すようにすることで、アプリケーションサーバー間のあらゆる時間の不一致(PHPが実行中)とデータベースサーバーが回避されることを確認します。

複雑な時間計算が必要な場合は、ソース。これは非常に強力な方法で、非常に細かい粒の時間計算を知っています(例えば、20秒前、20秒前、10分前、...)


日付フォーマット、MySQL経由でフォーマットすることができます。

SELECT your_fields, FROM_UNIXTIME(date, 'H:%i:%s') FROM table;
.

は、例えば12:24:59を与えるでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top