Chcę umieścić informację o prawach autorskich w stopce strony internetowej, ale uważam, że jest bardzo tandetna, aby rok był nieaktualny. Jak sprawić, by rok aktualizował się automatycznie w PHP 4 i PHP 5 ?
Za pomocą tego dostałem ostrzeżenie. Dodano date_default_timezone_set ('UTC'); aby uniknąć ostrzeżenia. („UTC + 1” nie działa ... nie mogę powiedzieć ci nic więcej, jak rozpoczęcie od PHP). Prawdopodobnie istnieje sposób na skonfigurowanie PHP, aby uniknąć rzucania ostrzeżeń (w jakimś pliku konfiguracyjnym, takim jak php.ini).
justin
4
@ justin Oznacza to, że nie ustawiłeś domyślnej strefy czasowej i PHP tego nie lubi. Możesz ustawić domyślną strefę czasową w php.inipliku za pomocą czegoś podobnego date.timezone = "America/Los_Angeles"lub możesz ustawić ją na początku kodu za pomocą czegoś podobnego date_default_timezone_set( "America/Los_Angeles" ).
Joshua Pinter
7
UWAGA: Rok w informacji o prawach autorskich nie ma tak naprawdę dużej wartości prawnej, ale zwykle jest dodawany, aby pomóc osobom, które chcą wiedzieć, czy prawa autorskie nadal obowiązują. Jako taki powinien to być rok, w którym praca została opublikowana. Korzystanie z bieżącego roku naprawdę nie ma sensu ... Widziałem to jednak niezliczoną ilość razy.
Stijn de Witt
7
Osobiście twierdzę, że stała się konwencją internetową, więc chociaż technicznie masz rację, ludzie nie oczekują tego. Faktem jest, że chociaż napis „Copyright 2007, wszelkie prawa zastrzeżone” umieszczone w stopce strony zawierającej artykuł napisany w 2007 r. Jest technicznie poprawny, osoby odwiedzające stronę prawdopodobnie przypuszczą, że strona została opuszczona. Nawet duże korporacje z zespołami prawników wciąż stemplują swoje strony internetowe bieżącym rokiem, nawet jeśli jest to „2007-2015”
Nathan Hornby,
Odpowiedzi:
1151
Możesz użyć daty lub strftime . W tym przypadku powiedziałbym, że to nie ma znaczenia, ponieważ rok jest rokiem, bez względu na wszystko (chyba że istnieją ustawienia regionalne, które formatują rok inaczej?)
Na przykład:
<?php echo date("Y");?>
Na marginesie, przy formatowaniu dat w PHP ma to znaczenie, gdy chcesz sformatować datę w innym języku niż domyślny. Jeśli tak, musisz użyć setlocale i strftime. Według podręcznika php w dniu:
Aby sformatować daty w innych językach, należy użyć funkcji setlocale () i strftime () zamiast date ().
Z tego punktu widzenia uważam, że najlepiej byłoby używać strftime w jak największym stopniu, jeśli masz nawet zdalną możliwość zlokalizowania aplikacji. Jeśli to nie problem, wybierz ten, który najbardziej Ci się podoba.
@ErikvanBrakel po prostu nie interesuje bieżący rok w Tajlandii to 2556. Nie jestem pewien, czy ustawienia regionalne PHP biorą to pod uwagę, ale w idealnym świecie powinno :)
Dirk Hartzer Waldeck
Możesz po prostu powiedzieć: data („Y”);
Chińskie i japońskie lata ftw! 2016 年 / 二千 十六 年
Panzercrisis
3
Gdybym mógł to zrobić na Youtube. „Na przykład, jeśli oglądasz to w <? Php echo date („ Y ”);?>”
Lub (PHP 5.3.0+) kompaktowy sposób na wykonanie tego za pomocą funkcji anonimowej, dzięki czemu nie ma wycieków zmiennych i nie powtarzasz kodu / stałych:
Staraj się unikać tagów krótkich, czy to <? lub <? = ponieważ nie jest to dobra praktyka. Warto jednak wspomnieć, że wiele dobrych frameworków, takich jak Zend, nie pozwala na stenograficzne otwieranie linków do tagów otwierających PHP. Więc proszę, dla mojego dobra, wykonaj kilka naciśnięć klawiszy, aby zachować czytelność kodu.
Wael Assaf,
7
Jeśli twój serwer obsługuje krótkie tagi lub używasz PHP 5.4, możesz użyć:
echo date("Y");
php.ini
pliku za pomocą czegoś podobnegodate.timezone = "America/Los_Angeles"
lub możesz ustawić ją na początku kodu za pomocą czegoś podobnegodate_default_timezone_set( "America/Los_Angeles" )
.Odpowiedzi:
Możesz użyć daty lub strftime . W tym przypadku powiedziałbym, że to nie ma znaczenia, ponieważ rok jest rokiem, bez względu na wszystko (chyba że istnieją ustawienia regionalne, które formatują rok inaczej?)
Na przykład:
Na marginesie, przy formatowaniu dat w PHP ma to znaczenie, gdy chcesz sformatować datę w innym języku niż domyślny. Jeśli tak, musisz użyć setlocale i strftime. Według podręcznika php w dniu:
Z tego punktu widzenia uważam, że najlepiej byłoby używać strftime w jak największym stopniu, jeśli masz nawet zdalną możliwość zlokalizowania aplikacji. Jeśli to nie problem, wybierz ten, który najbardziej Ci się podoba.
źródło
'y'
? : /źródło
<?= date('Y') ?>
Moja bardzo leniwa wersja pokazująca linię praw autorskich, która jest automatycznie aktualizowana:
W tym roku (2008) powie:
W przyszłym roku powie:
i zawsze bądź na bieżąco z bieżącym rokiem.
Lub (PHP 5.3.0+) kompaktowy sposób na wykonanie tego za pomocą funkcji anonimowej, dzięki czemu nie ma wycieków zmiennych i nie powtarzasz kodu / stałych:
źródło
© <?php echo 2008 != date('Y') ? '2008 - ' . date('Y') : 2008; ?> Me, Inc.
<?php echo '© 2008', ($year = gmdate("Y")) !== '2008'? ' - '.$year : '', ' Me, Inc.'; ?>
Ponieważ PHP zmierza w kierunku bardziej obiektowym, jestem zaskoczony, że nikt tutaj nie odwoływał się do wbudowanej
DateTime
klasy:lub jednowierszowy z dostępem do klasy podczas tworzenia instancji (php> = 5,4):
źródło
http://us2.php.net/date
źródło
Uwielbiam strftime . Jest to świetna funkcja do przechwytywania / ponownego łączenia fragmentów dat / godzin.
Ponadto przestrzega ustawień regionalnych, których funkcja daty nie robi.
źródło
Ten podaje czas lokalny:
A ten jeden UTC :
źródło
Dla reprezentacji 4 cyfr:
2-cyfrowe przedstawienie:
Sprawdź dokumentację php, aby uzyskać więcej informacji: https://secure.php.net/manual/en/function.date.php
źródło
Oto co robię:
poniżej znajduje się wyjaśnienie tego, co robi:
Y da ci cztery cyfry (np. 1990), a y dwie cyfry (np. 90)
źródło
echo date('Y')
daje bieżący rok, a to aktualizuje się automatycznie, ponieważdate()
podaje nam bieżącą datę.źródło
Aby uzyskać więcej informacji, sprawdź dokumentację funkcji date (): https://secure.php.net/manual/en/function.date.php
źródło
użyj funkcji PHP, która właśnie została wywołana
date()
.Bierze aktualną datę, a następnie podajesz jej format
a format będzie po prostu Y. Kapitał Y będzie czterocyfrowy rok.
źródło
Ten kod powinien wystarczyć
źródło
Jeśli twój serwer obsługuje krótkie tagi lub używasz PHP 5.4, możesz użyć:
źródło
Tylko napisz:
Lub:
I „echo” tej wartości ...
źródło
Możesz użyć prostej klasy daty PHP. Zapewnia wiele przydatnych metod i funkcji:
Możesz sprawdzić stronę samouczków biblioteki, aby uzyskać więcej przykładów
źródło
BTW ... istnieje kilka prawidłowych sposobów wyświetlania praw autorskich do witryny. Niektóre osoby mają skłonność do nadmiaru rzeczy, np .: Prawa autorskie © mają to samo znaczenie. Ważnymi częściami dotyczącymi praw autorskich są:
lub
źródło
Dla wersji php 5.4+
Lub możesz użyć go z jedną linią
Jeśli chcesz zwiększyć lub zmniejszyć rok inną metodę; dodaj zmodyfikuj linię jak poniżej.
źródło
użyj
date()
funkcji PHP .a format będzie po prostu Y. Kapitał Y będzie czterocyfrowy rok.
źródło
najlepszy shortcode dla tej sekcji:
źródło
Wykorzystaj pełny rok:
Lub użyj tylko dwóch cyfr roku:
źródło
Mój sposób na pokazanie praw autorskich, który aktualizuje się automatycznie
Spowoduje to wyświetlenie wyników jako
źródło
Możesz użyć tego w sekcjach stopki, aby uzyskać dynamiczny rok praw autorskich
źródło
$ rok = data („Y”, strtotime ($ twojaDataWar));
źródło
źródło
Jeśli używasz rozszerzenia Carbon PHP API dla DateTime , możesz to łatwo osiągnąć:
<?php echo Carbon::now()->year; ?>
źródło