현재 연도를 얻기 위해 PHP를 어떻게 사용합니까?


936

웹 사이트의 바닥 글에 저작권 표시를하고 싶지만, 1 년이 지났다는 것은 엄청나게 어색하다고 생각합니다. PHP 4PHP 5로 연도를 자동으로 업데이트하려면 어떻게 합니까?


630
echo date("Y");
doub1ejack

2
나는 그것을 사용하여 경고를 받았다. date_default_timezone_set ( 'UTC') 추가; 경고를 피하기 위해. ( 'UTC + 1'이 작동하지 않습니다 ... PHP로 시작하는 것만 큼 많이 말할 수는 없습니다). 아마도 php.ini와 같은 일부 설정 파일에서 경고가 발생하지 않도록 PHP를 구성하는 방법이있을 것입니다.
저스틴

4
@justin 이것은 당신이 기본 시간대를 설정하지 않았고 PHP가 그것을 좋아하지 않음을 의미합니다. php.ini파일 에서 기본 시간대를 비슷한 것으로 date.timezone = "America/Los_Angeles"설정하거나 코드 시작 부분에서 같은 표준 시간대를 설정할 수 있습니다 date_default_timezone_set( "America/Los_Angeles" ).
Joshua Pinter

7
참고 : 저작권 표시의 연도는 실제로 많은 법적 가치가 없지만 일반적으로 저작권이 여전히 적용되는지 여부를 알고 자하는 사람들을 돕기 위해 추가됩니다. 따라서 작품이 출판 된 연도 여야합니다. 현재 연도를 사용하는 것은 실제로 아무 의미가 없습니다 ... 그러나 나는 수많은 시간을 보았습니다.
Stijn de Witt

7
나는 개인적으로 그것이 웹 컨벤션이되었다고 주장하기 때문에 기술적으로는 정확하지만 사람들이 기대하는 것은 아닙니다. 사실 2007 년에 작성된 기사가 포함 된 페이지의 바닥 글에 "저작권 2007, 모든 권리 보유"가 표시되어 있지만 기술적으로는 정확하지만 사이트 방문자는 사이트가 폐기되었다고 가정 할 수 있습니다. '2007-2015'일지라도 변호사 팀이있는 회사는 여전히 웹 페이지에 올해를 표시합니다.
Nathan Hornby 2016 년

답변:


1151

date 또는 strftime을 사용할 수 있습니다 . 이 경우 1 년이 1 년으로 중요하지 않다고 말하고 싶습니다 (연도를 다르게 포맷하는 로캘이 없다면?)

예를 들면 다음과 같습니다.

<?php echo date("Y"); ?>

참고로, PHP에서 날짜를 형식화 할 때 날짜를 기본이 아닌 다른 로케일로 형식화하려는 경우 중요합니다. 그렇다면 setlocale 및 strftime을 사용해야합니다. 날짜에 PHP 매뉴얼 에 따르면 :

다른 언어로 날짜를 형식화하려면 date () 대신 setlocale () 및 strftime () 함수를 사용해야합니다.

이 관점에서 볼 때, 원격으로 응용 프로그램을 현지화 해야하는 경우 strftime을 최대한 사용하는 것이 가장 좋습니다. 이것이 문제가되지 않는다면 가장 좋아하는 것을 선택하십시오.


4
@ErikvanBrakel은 태국에서 현재 올해의 관심사 인 2556입니다. PHP 로케일이 이것을 고려한다면 완벽한 세계에서 :)
Dirk Hartzer Waldeck

당신은 간단히 말할 수 있습니다 : date ( "Y");

중국과 일본 년 ftw! 2016 年 / 二千 十六 年
Panzercrisis

3
유튜브에서 이걸 할 수 있다면 "<? php echo date ("Y ");?>"에서 이것을보고 있다면
Luka

내가 왜 사용 'y'했습니까? : /
Guga Nemsitsveridze

515
<?php echo date("Y"); ?>

32
또한,<?= date('Y') ?>
셰인 Reustle

33
짧은 태그가 모든 서버에서 지원되는 것은 아니며 programmers.stackexchange.com/questions/151661/…
Dirk Hartzer Waldeck

5
PHP 5.4에서는 위와 같은 짧은 에코 태그를 자유롭게 사용할 수 있습니다. 그들은 imho의 견해가 훨씬 좋습니다.
Jimbo

1
@ShaneReustle, 당신은 마지막에 세미콜론을 놓쳤다;) 나는이 경우 중요하지 않다는 것을 알고 있지만 초보자에게는 좋은 습관입니다 :)
Dimitar

204

저작권 라인을 표시하는 내 게으른 버전으로 자동 업데이트됩니다.

&copy; <?php 
$copyYear = 2008; 
$curYear = date('Y'); 
echo $copyYear . (($copyYear != $curYear) ? '-' . $curYear : '');
?> Me, Inc.

올해 (2008 년)에는 다음과 같이 표시됩니다.

© 2008 Me, Inc.

내년에는 다음과 같이 말할 것입니다.

© 2008-2009 Me, Inc.

그리고 현재 연도로 계속 업데이트됩니다.


또는 (PHP 5.3.0+) 익명 함수를 사용하여 간단한 방법으로 변수가 누출되지 않고 코드 / 상수를 반복하지 않도록하십시오.

&copy; 
<?php call_user_func(function($y){$c=date('Y');echo $y.(($y!=$c)?'-'.$c:'');}, 2008); ?> 
Me, Inc.

15
더 짧은 (그러나 읽기 쉽지 않은) 버전 :&copy; <?php echo 2008 != date('Y') ? '2008 - ' . date('Y') : 2008; ?> Me, Inc.
hitautodestruct

내 한 줄 버전 :<?php echo '&copy; 2008', ($year = gmdate("Y")) !== '2008'? ' - '.$year : '', ' Me, Inc.'; ?>
ale5000

71

좀 더 객체 지향적 인 방향으로 PHP 제목을 사용하면 아무도 내장 DateTime클래스를 참조하지 않은 것에 놀랐습니다 .

$now = new DateTime();
$year = $now->format("Y");

또는 인스턴스화시 클래스 멤버 액세스 권한이있는 하나의 라이너 (php> = 5.4) :

$year = (new DateTime)->format("Y");


28
strftime("%Y");

나는 strftime을 좋아 합니다. 날짜 / 시간 덩어리를 잡거나 재결합하는 데 유용한 기능입니다.

또한 날짜 기능이 수행하지 않는 로케일 설정을 준수합니다.


14

이것은 당신에게 현지 시간을 제공합니다 :

$year = date('Y'); // 2008

그리고이 하나의 UTC :

$year = gmdate('Y'); // 2008


12

내가하는 일은 다음과 같습니다.

<?php echo date("d-m-Y") ?>

아래는 그 기능에 대한 약간의 설명입니다.

d = day
m = month
Y = year

Y는 네 자리 (예 : 1990)를, 두 자리 (예 : 90)는 y


10

echo date('Y')현재 연도를 date()제공하며 현재 날짜를 제공 하므로 자동으로 업데이트됩니다 .



8

방금 PHP 함수를 사용하십시오 date().

현재 날짜를 취한 다음 형식을 제공합니다.

형식은 Y입니다. 대문자 Y는 4 자리 연도입니다.

<?php echo date("Y"); ?>

8
<?php echo date("Y"); ?>

이 코드는


1
<?인지 여부에 관계없이 짧은 양식 태그를 피하십시오. 또는 <? = 좋은 습관이 아니기 때문에. Zend와 같은 많은 훌륭한 프레임 워크는 짧은 PHP 열기 태그 링크를 허용하지 않으므로 코드 가독성을 높이기 위해 키 입력을 수행하십시오.
Wael Assaf

7

서버가 짧은 태그를 지원하거나 PHP 5.4를 사용하는 경우 다음을 사용할 수 있습니다.

<?=date("Y")?>

6
짧은 태그를 다시 사용하지 마십시오. stackoverflow.com/questions/200640/…
Jelmer

php v5.4.0-<? = 태그는 short_open_tag ini 설정에 관계없이 항상 사용 가능하므로 이제이 구문을 사용할 수 있습니다.
nektobit

7

그냥 써:

date("Y") // A full numeric representation of a year, 4 digits
          // Examples: 1999 or 2003

또는:

date("y"); // A two digit representation of a year     Examples: 99 or 03

그리고이 가치를 '에코'...


5

간단한 PHP 날짜 클래스를 사용할 수 있습니다. 많은 유용한 방법과 기능을 제공합니다.

$date = new simpleDate();
echo $date->now()->getYear(); 
echo $date->now()->getMonth();
echo $date->set('2013-01-21')->getDayString();
echo $date->now()->compare('2013-01-21')->isBefore();
...

더 많은 예제를 보려면 라이브러리 학습서 페이지 를 확인할 수 있습니다


5

BTW ... 사이트 저작권을 표시하는 방법에는 몇 가지가 있습니다. 어떤 사람들은 일을 중복하는 경향이 있습니다. 즉, 저작권 © 같은 의미를 가지고 있습니다. 중요한 저작권 부분은 다음과 같습니다.

**Symbol, Year, Author/Owner and Rights statement.** 

PHP + HTML 사용하기 :

<p id='copyright'>&copy; <?php echo date("Y"); ?> Company Name All Rights Reserved</p>

또는

<p id='copyright'>&copy; <?php echo "2010-".date("Y"); ?> Company Name All Rights Reserved</p

5

PHP 5.4 이상

<?php
    $current= new \DateTime();
    $future = new \DateTime('+ 1 years');

    echo $current->format('Y'); 
    //For 4 digit ('Y') for 2 digit ('y')
?>

또는 한 줄로 사용할 수 있습니다

$year = (new DateTime)->format("Y");

연도를 늘리거나 줄이려면 다른 방법을 사용하십시오. 아래와 같이 수정 라인을 추가하십시오.

<?PHP 
  $now   = new DateTime;
  $now->modify('-1 years'); //or +1 or +5 years 
  echo $now->format('Y');
  //and here again For 4 digit ('Y') for 2 digit ('y')
?>

5

PHP date()함수를 사용하십시오 .

형식은 Y입니다. 대문자 Y는 4 자리 연도입니다.

<?php echo date("Y"); ?>


3

사용한 연도 전체 :

 <?php 
    echo $curr_year = date('Y'); // it will display full year ex. 2017
?>

또는 다음과 같이 사용한 두 자리 연도 만 얻으십시오.

 <?php 
    echo $curr_year = date('y'); // it will display short 2 digit year ex. 17
?>

3

저작권을 보여주는 방법은 자동으로 계속 업데이트됩니다.

<p class="text-muted credit">Copyright &copy;
    <?php
        $copyYear = 2017; // Set your website start date
        $curYear = date('Y'); // Keeps the second year updated
        echo $copyYear . (($copyYear != $curYear) ? '-' . $curYear : '');
    ?> 
</p>    

결과를 다음과 같이 출력합니다.

copyright @ 2017   //if $copyYear is 2017 
copyright @ 2017-201x    //if $copyYear is not equal to Current Year.

2
<?php date_default_timezone_set("Asia/Kolkata");?><?=date("Y");?>

바닥 글 섹션에서이를 사용하여 동적 저작권 연도를 얻을 수 있습니다.



-1
<?php
$time_now=mktime(date('h')+5,date('i')+30,date('s'));
$dateTime = date('d_m_Y   h:i:s A',$time_now);

echo $dateTime;
?>

1
이것은 그들이 요구하거나 설명 된 대답이 아닙니다.
Elliot A. 12

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.