-2

だから私は、更新時に current_timestamp を持つ列があるテーブルを持っています。希望どおりにフォーマットする方法は知っていますが、別の問題があります。

while ループ (または同等の pdo) でタイムスタンプをフォーマットすると、可能なエントリごとに同じフォーマットの日付が返されます.... (これは、行を取得する代わりに、変数を取得するためだと思います。)

foreach $data の実行中にタイムスタンプを $row としてフォーマットするにはどうすればよいですか

出力として、2013 年 6 月 24 日土曜日 13:14 が必要です。

$datum = strtotime($row[datum]); 
    setlocale(LC_ALL, 'nl_NL');

                            function nlDate($parameters){

// AM of PM doen we niet aan
$parameters = str_replace("A", "", $parameters);
$parameters = str_replace("a", "", $parameters);

$datum = date($parameters);

// Vervang de maand, klein
$datum = str_replace("january", "januari", $datum);
$datum = str_replace("february", "februari", $datum);
$datum = str_replace("march", "maart", $datum);
$datum = str_replace("april", "april", $datum);
$datum = str_replace("may", "mei", $datum);
$datum = str_replace("june", "juni", $datum);
$datum = str_replace("july", "juli", $datum);
$datum = str_replace("august", "augustus", $datum);
$datum = str_replace("september", "september", $datum);
$datum = str_replace("october", "oktober", $datum);
$datum = str_replace("november", "november", $datum);
$datum = str_replace("december", "december", $datum);

// Vervang de maand, hoofdletters
$datum = str_replace("January", "Januari", $datum);
$datum = str_replace("February", "Februari", $datum);
$datum = str_replace("March", "Maart", $datum);
$datum = str_replace("April", "April", $datum);
$datum = str_replace("May", "Mei", $datum);
$datum = str_replace("June", "Juni", $datum);
$datum = str_replace("July", "Juli", $datum);
$datum = str_replace("August", "Augustus", $datum);
$datum = str_replace("September", "September", $datum);
$datum = str_replace("October", "Oktober", $datum);
$datum = str_replace("November", "November", $datum);
$datum = str_replace("December", "December", $datum);

// Vervang de maand, kort
$datum = str_replace("Jan", "Jan", $datum);
$datum = str_replace("Feb", "Feb", $datum);
$datum = str_replace("Mar", "Maa", $datum);
$datum = str_replace("Apr", "Apr", $datum);
$datum = str_replace("May", "Mei", $datum);
$datum = str_replace("Jun", "Jun", $datum);
$datum = str_replace("Jul", "Jul", $datum);
$datum = str_replace("Aug", "Aug", $datum);
$datum = str_replace("Sep", "Sep", $datum);
$datum = str_replace("Oct", "Ok", $datum);
$datum = str_replace("Nov", "Nov", $datum);
$datum = str_replace("Dec", "Dec", $datum);

 // Vervang de dag, klein
  $datum = str_replace("monday", "maandag", $datum);
 $datum = str_replace("tuesday", "dinsdag", $datum);
 $datum = str_replace("wednesday", "woensdag", $datum);
 $datum = str_replace("thursday", "donderdag", $datum);
 $datum = str_replace("friday", "vrijdag", $datum);
 $datum = str_replace("saturday", "zaterdag", $datum);
 $datum = str_replace("sunday", "zondag", $datum);

  // Vervang de dag, hoofdletters
  $datum = str_replace("Monday", "Maandag", $datum);
 $datum = str_replace("Tuesday", "Dinsdag", $datum);
 $datum = str_replace("Wednesday", "Woensdag", $datum);
 $datum = str_replace("Thursday", "Donderdag", $datum);
$datum = str_replace("Friday", "Vrijdag", $datum);
$datum = str_replace("Saturday", "Zaterdag", $datum);
$datum = str_replace("Sunday", "Zondag", $datum);

 // Vervang de verkorting van de dag, hoofdletters
$datum = str_replace("Mon",  "Maa", $datum);
$datum = str_replace("Tue", "Din", $datum);
$datum = str_replace("Wed", "Woe", $datum);
$datum = str_replace("Thu", "Don", $datum);
$datum = str_replace("Fri", "Vri", $datum);
$datum = str_replace("Sat", "Zat", $datum);
$datum = str_replace("Sun", "Zon", $datum);

return $datum;

}

したがって、 nlDate("ymd",$datum) を実行すると、希望どおりにフォーマットされます。

私は次のことをしたときに考えました:

   echo (nlDate('D-F-Y',sprintf($row[datum])));  

次に、エントリごとにフォーマットしますが、そうではありません。これをループで使用すると、各エントリに対して同じ日付がエコーされてフォーマットされます。理由はよくわかりません

私がする時

 echo print_r($row[datum]);

ループ内の各エントリの正しい日付と時刻を表示します

4

3 に答える 3

0

関数の署名は次のとおりです。

nlDate($paramaters)

しかし、あなたはそれを次のように呼んでいます:

nlDate("format", $timestamp)

あなたがする行:

$datum = date($parameters);

dateフォーマット文字列である最初のパラメーターのみを渡し、 2 番目のパラメーターである現在の時刻にデフォルトを使用します。

2 つのパラメーターを受け取るように関数を変更する必要があります。

于 2013-06-24T11:39:33.420 に答える
0

解決策は次のとおりです。

$datum = strtotime($row[datum]);
setlocale(LC_TIME, 'Dutch'); 
$dutch = strftime('%A %e %B %Y %R ', $datum); 

echo $dutch;
于 2013-06-24T12:46:24.197 に答える
0

このようにして

      Date('D-d-M-Y H:i:s',YOuR_TIMESTAMP);
于 2013-06-24T11:28:45.093 に答える