[英]Check if $date is equal to 0000-00-00 00:00:00
我想要一個邏輯,如果$ due等於沒有日期,那么我希望數據從2000開始。我的代碼不起作用。
if($due == '0000-00-00 00:00:00'){
$due = strtotime('2000-00-00 00:00:00');
}
如果你在$ due中存儲strtotime(),那么你也需要比較它
if($due == strtotime('0000-00-00 00:00:00')){
$due = strtotime('2000-00-00 00:00:00');
}
或者,更簡單
if($due == 0){
$due = strtotime('2000-00-00 00:00:00');
}
但是如果$ due來自你的db作為字符串,你會想要strtotime()它:
$due = strtotime($due);
if($due == 0){
$due = strtotime('2000-00-00 00:00:00');
}
但要注意時區。 也就是說,strtotime('0000-00-0000:00:00 UTC')!= strtotime('0000-00-0000,00:00 EST')。 這也可能會打破你的比較。
我不知道為什么strtotime對我不起作用。 可能是因為時區和其他東西。
一如既往,花哨的正則表達式就像魅力一樣。 我不知何故沉迷於它!
if(preg_match("/0{4}/" , $dbDateField))
{
// no its not acceptable
}
else
{
//ok
}
我知道這是一個老問題,但這個答案可能會對某些人有所幫助
strtotime返回成功時間戳,否則返回FALSE。
$test = strtotime($due);
$due = (!$test || $test < 0) ? '2000-00-00 00:00:00' : $due;
unset($test);
問候。
您需要確保以相同的格式比較值。 根據您目前的情況,將會發生以下三件事:
$due
是一個int
,那么你將它與0000-00-00 00:00:00
進行比較的字符串將轉換為int
,這將導致0
, $due
將與0
進行比較。 如果$due === 0
這只會導致匹配。 $due
是bool
,則字符串將轉換為bool
,這將導致TRUE
,如果$due === TRUE
,您將只獲得匹配。 $due
是任何其他類型,它將被轉換為字符串,並將兩者作為字符串進行比較。 如果$due === '0000-00-00 00:00:00'
你將只獲得一場比賽。 如果說你可能需要將這些值作為整數進行比較。 這意味着你需要通過strtotime()
傳遞任何字符串 - 包括$due
,如果它是一個字符串。 由於您沒有顯示$due
的示例值,因此無法提供准確的工作代碼。
strtotime(YourDate) != NULL
可以正常工作。
我正在研究數據庫的DOB和DOM(婚姻日期)部分。 似乎NULL默認保存日期為0000-00-00。 說實話,這是一種愚蠢的事情。
或者將字段設為DATE字段而不是將其設置為VARCHAR並將STRTOTIME值保存在那里可能是我的愚蠢。
<?php
if(strtotime($dates->dom) != NULL)
{
echo '<a href="' . base_url() . 'dates/dom/' . $dates->dom . '">' . date('j F, Y',strtotime($dates->dom)) . '</a>';
}
else
{
print 'Not Listed Yet';
} ?></strong>
我想建議最簡單的形式
if(!$due)
$due = strtotime('2000-00-00 00:00:00');
這是檢查數據庫( mysql )中的datetime字段是否為空或'0000-00-00 00:00:00'
選擇all with starttime為null或'0000-00-00 00:00:00'且endtime不是(null或'0000-00-00 00:00:00')
在數據庫結束
select * from table where IFNULL(MONTH(starttime),0) >= 1 and IFNULL(MONTH(endtime),0) < 1;
在PHP結束
if((int)$starttime && !(int)$endtime){ /// }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.