2011-07-13 19 views
16

Jak usunąć część czasu znacznika czasu?Usuń część czasu znacznika czasu.

Na przykład włącz 1310571061 do 1310565600, który jest zwykłym znacznikiem daty.

+0

Co jest w datownik zwykły data? Masz na myśli datę + '00: 00: 00'? – Shef

+0

@ Sef, tak mam na myśli 'Y-M-D 00: 00: 00'. Nie liczone w sygnaturze czasowej. –

+0

Dałem ci odpowiedź. – Shef

Odpowiedz

24
strtotime(date("Y-m-d", 1310571061)); 

To powinno zrobić to za Ciebie.

+0

Dzięki. ale to zadziała tylko przez 24 godziny. –

+1

@ David, co masz na myśli? – Brad

+0

jak o zmianie na: 'strtotime (data (" ymd ", time())' następnie? –

1

Można zrobić:

$date = strotime(date("y/m/d", $timestamp)); 
4

Spróbuj:

<?php 
$ts = '1310571061'; 

echo strtotime(date('Y-m-d 00:00:00', $ts)); 
?> 
+0

'' Y-m-d'' jest bardziej konwencjonalny –

+0

@Yanick Rochon: Zaktualizowano, to powinno zaspokoić! :) – Shef

24

W przypadku chciałeś matematyczne rozwiązanie:

$time=1310571061; 
echo floor($time/86400)*86400; 

Istnieją 86,400 sekund w 24 godzin (co jest długość typowy dzień, ale nie wszystkie ... patrz DST). Ponieważ nasze sygnatury czasowe są w UTC, nie powinno to stanowić problemu. Możesz podzielić to przez liczbę sekund w ciągu dnia, upuść resztę i pomnóż z powrotem.

+0

Fajnie. Próbowałem '$ time - ($ time% 86400)' zanim zadaję pytanie dało nieprawidłowe wyniki. Jakieś pomysły, dlaczego? –

+0

Btw, zakładam, że 'time $/86400' to literówka. dobrze? –

+0

@ David, to działa dobrze dla mnie. Być może może Ci pomóc rzucenie czasu na wypłynięcie? – Brad

6

Korzystanie z obiektu DateTime może być pomocne, a także może uczynić kod bardziej czytelnym ...

$dt = new DateTime(); 
$dt->setTimestamp(1310571061); 
echo $dt->format('Y-m-d, H:i:s') . "\r\n"; 
$dt->setTime(0, 0, 0); 
echo $dt->format('Y-m-d, H:i:s'); 

Wynik ...

2011-07-14, 03:31: 01

2011-07-14, 00:00:00

wybór czy używać znaczników czasu lub surowe Obiekty DateTime będą w dużym stopniu zależeć od potrzeb związanych z implementacją, ale ogólnie rzecz biorąc, obiekty DateTime pójdą daleko w kierunku zmniejszenia zamieszania i błędów, które mogą pojawić się szczególnie w związku z problemami z strefami czasowymi i problemami z czasem letnim.

3
$pubdate='2003-02-19T00:00:00.000-05:00'; 

    $da = strtotime($pubdate); 
    echo $dat = date('Y-m-d', $da); 

Odpowiedź brzmi tak: "19.02.2003"

Dziękuję

Powiązane problemy