How do I use PHP to get the current year?

PhpDatePhp 5.3Php 5.4Php4

Php Problem Overview


I want to put a copyright notice in the footer of a web site, but I think it's incredibly tacky for the year to be outdated.

How would I make the year update automatically with PHP 4 or PHP 5?

Php Solutions


Solution 1 - Php

You can use either date or strftime. In this case I'd say it doesn't matter as a year is a year, no matter what (unless there's a locale that formats the year differently?)

For example:

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

On a side note, when formatting dates in PHP it matters when you want to format your date in a different locale than your default. If so, you have to use setlocale and strftime. According to the php manual on date:

> To format dates in other languages, > you should use the setlocale() and > strftime() functions instead of > date().

From this point of view, I think it would be best to use strftime as much as possible, if you even have a remote possibility of having to localize your application. If that's not an issue, pick the one you like best.

Solution 2 - Php

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

Solution 3 - Php

My super lazy version of showing a copyright line, that automatically stays updated:

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

This year (2008), it will say:

> © 2008 Me, Inc.

Next year, it will say:

> © 2008-2009 Me, Inc.

and forever stay updated with the current year.


Or (PHP 5.3.0+) a compact way to do it using an anonymous function so you don't have variables leaking out and don't repeat code/constants:

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

Solution 4 - Php

With PHP heading in a more object-oriented direction, I'm surprised nobody here has referenced the built-in DateTime class:

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

or one-liner with class member access on instantiation (php>=5.4):

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

Solution 5 - Php

strftime("%Y");

I love strftime. It's a great function for grabbing/recombining chunks of dates/times.

Plus it respects locale settings which the date function doesn't do.

Solution 6 - Php

http://us2.php.net/date

echo date('Y');

Solution 7 - Php

This one gives you the local time:

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

And this one UTC:

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

Solution 8 - Php

Here's what I do:

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

below is a bit of explanation of what it does:

d = day
m = month
Y = year

Y will gives you four digit (e.g. 1990) and y for two digit (e.g. 90)

Solution 9 - Php

For 4 digit representation:

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

2 digit representation:

<?php echo date('y'); ?>

Check the php documentation for more info: https://secure.php.net/manual/en/function.date.php

Solution 10 - Php

echo date('Y') gives you current year, and this will update automatically since date() give us the current date.

Solution 11 - Php

print date('Y');

For more information, check date() function documentation: https://secure.php.net/manual/en/function.date.php

Solution 12 - Php

use a PHP function which is just called date().

It takes the current date and then you provide a format to it

and the format is just going to be Y. Capital Y is going to be a four digit year.

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

Solution 13 - Php

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

This code should do

Solution 14 - Php

Just write:

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

Or:

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

And 'echo' this value...

Solution 15 - Php

use a PHP date() function.

and the format is just going to be Y. Capital Y is going to be a four digit year.

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

Solution 16 - Php

If your server supports Short Tags, or you use PHP 5.4, you can use:

<?=date("Y")?>

Solution 17 - Php

BTW... there are a few proper ways how to display site copyright. Some people have tendency to make things redundant i.e.: Copyright © have both the same meaning. The important copyright parts are:

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

> Using PHP + HTML:

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

or

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

Solution 18 - Php

For up to php 5.4+

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

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

Or you can use it with one line

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

If you wanna increase or decrease the year another method; add modify line like below.

<?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')
?>

Solution 19 - Php

Get full Year used:

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

Or get only two digit of year used like this:

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

Solution 20 - Php

To get the current year using PHP’s date function, you can pass in the “Y” format character like so:

//Getting the current year using
//PHP's date function.

$year = date("Y");
echo $year;

The example above will print out the full 4-digit representation of the current year.

If you only want to retrieve the 2-digit format, then you can use the lowercase “y” format character:

$year = date("y");
echo $year;
1
2
$year = date("y");
echo $year;

The snippet above will print out 20 instead of 2020, or 19 instead of 2019, etc.

Solution 21 - Php

$dateYear = date('Y');
echo "Current Year: $dateYear";

> Current Year: 2022

$dateYear = date('y');
echo $dateYear;

> 22

Solution 22 - Php

My way to show the copyright, That keeps on updating automatically

<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>	
		

It will output the results as

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

Solution 23 - Php

best shortcode for this section:

<?= date("Y"); ?>

Solution 24 - Php

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

You can use this in footer sections to get dynamic copyright year

Solution 25 - Php

$year = date("Y", strtotime($yourDateVar));

Solution 26 - Php

In Laravel

$date = Carbon::now()->format('Y');
return $date;

In PHP

echo date("Y");

Solution 27 - Php

in my case the copyright notice in the footer of a wordpress web site needed updating.

thought simple, but involved a step or more thann anticipated.

  1. Open footer.php in your theme's folder.

  2. Locate copyright text, expected this to be all hard coded but found:

    <div id="copyright">
        <?php the_field('copyright_disclaimer', 'options'); ?>
    </div>
    
  3. Now we know the year is written somewhere in WordPress admin so locate that to delete the year written text. In WP-Admin, go to Options on the left main admin menu:

    enter image description here Then on next page go to the tab Disclaimers:

    enter image description here and near the top you will find Copyright year:

    enter image description here DELETE the © symbol + year + the empty space following the year, then save your page with Update button at top-right of page.

  4. With text version of year now delete, we can go and add our year that updates automatically with PHP. Go back to chunk of code in STEP 2 found in footer.php and update that to this:

    <div id="copyright">
        &copy;<?php echo date("Y"); ?> <?php the_field('copyright_disclaimer', 'options'); ?>
    </div>
    
  5. Done! Just need to test to ensure changes have taken effect as expected.

this might not be the same case for many, however we've come across this pattern among quite a number of our client sites and thought it would be best to document here.

Solution 28 - Php

Print current month with M, day with D and year with Y.

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

Solution 29 - Php

For more pricise in second param in date function strtotime return the timestamp passed by param

// This work when you get time as string
echo date('Y', strtotime("now"));

// Get next years
echo date('Y', strtotime("+1 years"));

// 
echo strftime("%Y", strtotime("now"));

With datetime class

echo (new DateTime)->format('Y');

Solution 30 - Php

create a helper function and call it

getCurrentYear();

function getCurrentYear(){
    return now()->year;
}

Solution 31 - Php

<?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;
?>

Solution 32 - Php

If you are using the Carbon PHP API extension for DateTime, you can achieve it easy:

<?php echo Carbon::now()->year; ?>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJD GraffamView Question on Stackoverflow
Solution 1 - PhpErik van BrakelView Answer on Stackoverflow
Solution 2 - PhpDaniel PapasianView Answer on Stackoverflow
Solution 3 - PhpgregmacView Answer on Stackoverflow
Solution 4 - PhpThomas KelleyView Answer on Stackoverflow
Solution 5 - PhpMark BiekView Answer on Stackoverflow
Solution 6 - PhpchrisbView Answer on Stackoverflow
Solution 7 - PhpAlexey LebedevView Answer on Stackoverflow
Solution 8 - PhpAbdul Rahman A SamadView Answer on Stackoverflow
Solution 9 - Phpjoan16vView Answer on Stackoverflow
Solution 10 - PhpkkarayatView Answer on Stackoverflow
Solution 11 - PhpdarwinView Answer on Stackoverflow
Solution 12 - PhpWael AssafView Answer on Stackoverflow
Solution 13 - PhpAbdelkader SoudaniView Answer on Stackoverflow
Solution 14 - PhpsaadkView Answer on Stackoverflow
Solution 15 - PhpSanu0786View Answer on Stackoverflow
Solution 16 - PhpPanicGripView Answer on Stackoverflow
Solution 17 - PhpMilanView Answer on Stackoverflow
Solution 18 - PhpIvan BarayevView Answer on Stackoverflow
Solution 19 - PhpGanesh UdmaleView Answer on Stackoverflow
Solution 20 - Phpephantus okumuView Answer on Stackoverflow
Solution 21 - PhpMr. CoderxView Answer on Stackoverflow
Solution 22 - PhpSushank PokharelView Answer on Stackoverflow
Solution 23 - PhpOmid AhmadyaniView Answer on Stackoverflow
Solution 24 - PhpimtaherView Answer on Stackoverflow
Solution 25 - PhpHernán EcheView Answer on Stackoverflow
Solution 26 - PhpAyaz KhalidView Answer on Stackoverflow
Solution 27 - PhpallenskiView Answer on Stackoverflow
Solution 28 - PhpdevView Answer on Stackoverflow
Solution 29 - PhpPascal TovoheryView Answer on Stackoverflow
Solution 30 - PhpMd. Saifur RahmanView Answer on Stackoverflow
Solution 31 - PhpGauravView Answer on Stackoverflow
Solution 32 - PhpandclView Answer on Stackoverflow