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.
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.
strtotime(date("Y-m-d", 1310571061));
To powinno zrobić to za Ciebie.
Dzięki. ale to zadziała tylko przez 24 godziny. –
@ David, co masz na myśli? – Brad
jak o zmianie na: 'strtotime (data (" ymd ", time())' następnie? –
Można zrobić:
$date = strotime(date("y/m/d", $timestamp));
Spróbuj:
<?php
$ts = '1310571061';
echo strtotime(date('Y-m-d 00:00:00', $ts));
?>
'' Y-m-d'' jest bardziej konwencjonalny –
@Yanick Rochon: Zaktualizowano, to powinno zaspokoić! :) – Shef
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.
Fajnie. Próbowałem '$ time - ($ time% 86400)' zanim zadaję pytanie dało nieprawidłowe wyniki. Jakieś pomysły, dlaczego? –
Btw, zakładam, że 'time $/86400' to literówka. dobrze? –
@ David, to działa dobrze dla mnie. Być może może Ci pomóc rzucenie czasu na wypłynięcie? – Brad
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.
$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ę
Co jest w datownik zwykły data? Masz na myśli datę + '00: 00: 00'? – Shef
@ Sef, tak mam na myśli 'Y-M-D 00: 00: 00'. Nie liczone w sygnaturze czasowej. –
Dałem ci odpowiedź. – Shef