所以我使用的函数在HTML中的两个不同位置使用,如下所示。
function remaining($expDate,$output){
$dStart = new DateTime(date('Y-m-d'));
$dEnd = new DateTime(date('Y-m-d ',strtotime($expDate)));
$dDiff = $dStart->diff($dEnd);
$dDiff->format('%R');
if($output = "return"){
return $dDiff->days;
}else{
echo $dDiff->days;}
}
<div
class="progress-bar <?php if(remaining($expDate,"return")==90){echo"progress-bar-success";}else{echo "progress-bar-danger";}?>
role="progressbar"
aria-valuenow="40"
aria-valuemin="0" aria-valuemax="100"
style="width: <?php remaining($expDate,"echo") ?>%">
当我返回值style
时,部分不起作用,当我在if()
语句中回显时,我得到了值:(所以我尝试添加第二个参数并给出相对输出。
我显然在这里遗漏了一些东西,但无法弄明白:(你能给我一个关于函数变量输出的提示吗?或者可能是一个更好的方法来实现这个:)
答案 0 :(得分:0)
问题是if语句
This is an attribution not a comparison
if( $output = "return" ){ ...
应该是这样的:
function remaining($expDate,$output){
$dStart = new DateTime(date('Y-m-d'));
$dEnd = new DateTime(date('Y-m-d ',strtotime($expDate)));
$dDiff = $dStart->diff($dEnd);
return $dDiff->days;
}
AH !!顺便说一下上面的代码是如何工作的,因为你没有让它成功运行
忘了这样做:<?php echo remaining()... ?>
你忘记了回声!
问候。
答案 1 :(得分:0)
if($output = "return")
永远是真的,纠正它
if($output == "return")
所以程序比较并返回TRUE或FALSE
答案 2 :(得分:0)
if($output = "return"){
需要
if($output == "return"){
如果你把
if($output = "return"){
然后你有效地将$ output设置为等于return(它将始终返回true!)
答案 3 :(得分:0)
您的if语句似乎很糟糕。您正在使用'=',它听起来不像PHP中的'equals'运算符。所以只需用'=='替换你的条件中的'='。
你可能也喜欢在这里传递一个简单的布尔值(true / false)而不是字符串,但这取决于你。