MySQL时间戳格式化

时间:2013-06-24 11:15:34

标签: php mysql formatting timestamp

所以我有一个表,其中有一个更新时current_timestamp的列。 我知道如何按照我想要的方式对其进行格式化,但我有另一个问题。

在while循环(或等效的pdo)中,当我格式化时间戳时,它将为每个可能的条目返回相同的格式化日期....(我认为这是因为它不是获取行,而是获取变量。 )

如何将foreach $数据中的时间戳格式化为$ row

我希望星期六 - 24 - 6月 - 2013年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(“y-m-d”,$ datum)时,它会按照我想要的方式进行格式化。

我想当我做了以下事情:

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

然后它将为每个条目格式化它,但它不会,它回显并在循环中使用它时为每个条目格式化相同的日期。我不太清楚为什么

当我做的时候

 echo print_r($row[datum]);

它会显示循环中每个条目的正确日期和时间

3 个答案:

答案 0 :(得分:0)

这样做

      Date('D-d-M-Y H:i:s',YOuR_TIMESTAMP);

答案 1 :(得分:0)

您的功能签名是:

nlDate($paramaters)

但你称之为:

nlDate("format", $timestamp)

您所在的行:

$datum = date($parameters);

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

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

答案 2 :(得分:0)

解决方案是:

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

echo $dutch;