-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

喜欢这样

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

您的函数签名是:

nlDate($paramaters)

然而,您将其称为:

nlDate("format", $timestamp)

你做的那一行:

$datum = date($parameters);

只会将第一个参数传递给date格式化字符串,并使用第二个参数的默认值,即当前时间。

您需要更改函数以获取两个参数。

于 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 回答