2011-12-13 64 views
0

我想知道它來自unix時間戳的哪一天。例如1322784000應該真的告訴我這個時間戳是First Friday,其中1326989000將返回Third Thursday。我不知道從哪裏開始,有沒有人做過這樣的事情,可以幫我一把。從UNIX時間戳中查找哪一天

+0

「第一個星期五」 - 第一星期五以來呢? – Prisoner

+0

這個月的第一個星期五? –

+0

http://www.onlineconversion.com/unix_time.htm,http://www.epochconverter.com/ –

回答

1

您可以使用此代碼弄清楚的是:

$ts=array(1322784000, 1326989000, 1323216000, strtotime('2011-12-28'), strtotime('2011-12-21'), strtotime('2011-12-28'), strtotime('2011-12-29')); 
foreach ($ts as $t) { 
    $dt = new DateTime('@' . $t); 
    $d = ceil($dt->format('d')/7); 
    $str=""; 
    switch ($d) { 
     case 1: $str = "1st "; 
     break; 
     case 2: $str = "2nd "; 
     break; 
     case 3: $str = "3rd "; 
     break; 
     case 4: $str = "4th "; 
     break; 
     default: $str = "5th "; 
     break; 
    } 
    echo $dt->format('Y-m-d H:i:s') . " is: " . $str . $dt->format('l') . "\n"; 
} 

輸出

2011-12-02 00:00:00 is: 1st Friday 
2012-01-19 16:03:20 is: 3rd Thursday 
2011-12-07 00:00:00 is: 1st Wednesday 
2011-12-28 00:00:00 is: 4th Wednesday 
2011-12-21 00:00:00 is: 3rd Wednesday 
2011-12-28 00:00:00 is: 4th Wednesday 
2011-12-29 00:00:00 is: 5th Thursday 
+0

這和Sarwar的一樣。 1323216000報告爲第二個星期三。 – dotty

+0

你說得對,我應該用'ceil'函數代替'floor'。用很多邊界測試用例更新了我的答案。 – anubhava

+0

謝謝!這似乎通過了Sarwar失敗的所有測試。 – dotty