2017-03-06 114 views
1

我想计算存储在db中的当前时间和时间之间的时间差。 d/M/y H:i:s A是MS Sql存储日期和时间的格式。 以下代码返回错误的值。计算日期格式的时间差('d/M/y H:i:s A')

function time_difference($created_time) 
{ 
    $str = $created_time;    // 03/Mar/17 12:35:00 PM 
    $today = date('d/M/y H:i:s A'); // 06/Mar/17 06:35:15 AM 
    $time_difference = $today - $str; // Returns 3 
} 

反正是有转换$str$today给秒了吗?

+0

'$ TIME_DIFFERENCE =的strtotime($今天 - $ STR);'它会在几秒钟内给你带来差异 –

+0

@Anant它返回布尔值false –

+0

@Anant你可能的意思是'strtotime($ today) - strtotime($ str)' – MarianD

回答

3

做象下面这样: -

<?php 
function time_difference($created_time) 
{ 
     $str = $created_time;    // 03/Mar/17 12:35:00 PM 
     $today = date('d/M/y H:i:s A'); // 06/Mar/17 06:35:15 AM 
     return $time_difference = strtotime(str_replace('/','-',$today)) - strtotime(str_replace('/','-',$str)); 
} 

echo time_difference("03/Mar/17 12:35:00 PM"); 

输出: - https://eval.in/748622

+0

是的!谢谢:) :) –

+0

@Mànìkàndàn很高兴帮助你:) :) –

1
function time_difference($created_time) 
{ 
     $created = DateTime::createFromFormat('d/M/y H:i:s A', $created_time); 
     return strtotime('now') - $created->getTimestamp(); 
} 
+0

这将返回int 0 –

+0

使用更新的代码 – sam

+0

是的兄弟!这工作太..谢谢 –

1
<?php 
function time_difference($created_time, $date ='',$new_date ='',$time_diff ='') 
{ 

    $date = DateTime::createFromFormat('d/M/y H:i:s A', $created_time); 
    $new_date = $date->format('Y-m-d h:i:s'); 
    $time_diff = strtotime(date('Y-m-d h:i:s')) - strtotime($new_date); 
    return $time_diff; 
} 
echo time_difference('03/Mar/17 12:35:00 PM'); 
?> 

Working demo