如果$ due等於無日期,我想要一個邏輯,那麼我希望數據以2000開頭。我的下面的代碼不起作用。
if($due == '0000-00-00 00:00:00'){
$due = strtotime('2000-00-00 00:00:00');
}
如果$ due等於無日期,我想要一個邏輯,那麼我希望數據以2000開頭。我的下面的代碼不起作用。
if($due == '0000-00-00 00:00:00'){
$due = strtotime('2000-00-00 00:00:00');
}
如果你是存儲在適當的$的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');
}
但如果$由於來自你的分貝作爲一個字符串,你會想strtotime()它:
$due = strtotime($due);
if($due == 0){
$due = strtotime('2000-00-00 00:00:00');
}
雖然知道時區。也就是說,的strtotime( '0000-00-00 00:00:00 UTC')!=的strtotime( '0000-00-00 00:00:00 EST')。這也可能會打破你的比較。
strtotime('0000-00-00 00:00:00') 可能會返回負值,null,false取決於PHP版本 – XuDing 2012-11-01 02:38:54
你需要確保你是在相同的格式比較值。與你當前所擁有的三件事情上會發生:
$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的)如果時間字段爲空或'0000-00-00 00:00:00'
選擇所有與開始時間爲空或'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){ /// }
我知道這是一個老問題,但這個答案可以幫助別人
的strtotime成功返回時間戳,否則返回FALSE。
$test = strtotime($due);
$due = (!$test || $test < 0) ? '2000-00-00 00:00:00' : $due;
unset($test);
關於。
我不知道爲什麼strtotime沒有爲我正確工作。可能是因爲時區和其他東西。
一如既往的花式正則表達式就像一個魅力。我有點沉迷於它!
if(preg_match("/0{4}/" , $dbDateField))
{
// no its not acceptable
}
else
{
//ok
}
請提供'var_dump($ due);' – Wrikken 2012-01-13 16:38:48
這個日期來自哪裏? – webbiedave 2012-01-13 16:38:54
如果您已從數據庫檢索到該值,則最好在查詢中執行此邏輯。除非你在''if()' – 2012-01-13 16:40:35