这是我的代码:
layout_width
输出为:<?php
$date_db = "2017-10-12 12:00:00";
setlocale(LC_ALL, "de_DE.UTF-8");
$date_db = strtotime($date_db);
$date_db = strftime("%e. %B %Y, %A, %k:%M Uhr", $date_db);
$date_db = str_replace(":00","",$date_db);
echo $date_db;
?>
到目前为止这是可以的。但有时候没有时间,只有约会,如:12. Oktober 2017, Donnerstag, 12 Uhr
。
这将输出:$date_db = "2017-10-12 00:00:00";
。
在这种情况下,我希望删除尾随12. Oktober 2017, Donnerstag, 0 Uhr
。
我认为通过在另一个, 0 Uhr
代码行下面使用这行代码可以正常工作:str_replace
。
整个代码:
$date_db = str_replace(", 0 Uhr","",$date_db);
这应输出<?php
$date_db = "2017-10-12 00:00:00";
setlocale(LC_ALL, "de_DE.UTF-8");
$date_db = strtotime($date_db);
$date_db = strftime("%e. %B %Y, %A, %k:%M Uhr", $date_db);
$date_db = str_replace(":00","",$date_db);
$date_db = str_replace(", 0 Uhr","",$date_db);
echo $date_db;
?>
,但输出为12. Oktober 2017, Donnerstag
。
我做错了什么?
答案 0 :(得分:2)
//(rtrim) Removes whitespace or other predefined characters from the right side of a string
<!---language:lang-php-->
<?php
$date_db = "2017-10-12 00:00:00";
setlocale(LC_ALL, "de_DE.UTF-8");
$date_db = strtotime($date_db);
$date_db = strftime("%e. %B %Y, %A, %k:%M Uhr", $date_db);
$date_db = str_replace(":00","",$date_db);
$date_db = rtrim($date_db ,", 0 Uhr");//(rtrim) Removes whitespace or other predefined characters from the right side of a string
echo $date_db;
?>
答案 1 :(得分:1)
$date_db = "2017-10-12 10:00:00";
setlocale(LC_ALL, "de_DE.UTF-8");
$date_db = strtotime($date_db);
$date_db = strftime("%e. %B %Y, %A, %k:%M Uhr", $date_db);
$date_db = str_replace(":00","",$date_db);
//check if string contains O Uhr then only trim
if(preg_match("/ 0 Uhr/", $date_db)){
$date_db = str_replace("0 Uhr","",$date_db);
$date_db = rtrim($date_db, ' ,');
}
echo $date_db;
答案 2 :(得分:0)
<?php
$string = '12. Oktober 2017, Donnerstag, 0 Uhr';
$string = str_replace(", 0 Uhr", "", $string);
echo $string;