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?
1132 Answers
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.
6<?php echo date("Y"); ?> 3My super lazy version of showing a copyright line, that automatically stays updated:
© <?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:
© <?php call_user_func(function($y){$c=date('Y');echo $y.(($y!=$c)?'-'.$c:'');}, 2008); ?> Me, Inc. 2With 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"); 0strftime("%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.
echo date('Y'); 0This one gives you the local time:
$year = date('Y'); // 2008 And this one UTC:
$year = gmdate('Y'); // 2008 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)
0For 4 digit representation:
<?php echo date('Y'); ?> 2 digit representation:
<?php echo date('y'); ?> Check the php documentation for more info:
echo date('Y') gives you current year, and this will update automatically since date() give us the current date.
print date('Y'); For more information, check date() function documentation:
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"); ?> <?php echo date("Y"); ?> This code should do
3Just 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...
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"); ?> If your server supports Short Tags, or you use PHP 5.4, you can use:
<?=date("Y")?> 2BTW... 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'>© <?php echo date("Y"); ?> Company Name All Rights Reserved</p> or
<p id='copyright'>© <?php echo "2010-".date("Y"); ?> Company Name All Rights Reserved</p 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') ?> 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 ?> 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.
1$dateYear = date('Y'); echo "Current Year: $dateYear"; Current Year: 2022
$dateYear = date('y'); echo $dateYear; 22
My way to show the copyright, That keeps on updating automatically
<p>Copyright © <?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. best shortcode for this section:
<?= date("Y"); ?> 1<?php date_default_timezone_set("Asia/Kolkata");?><?=date("Y");?> You can use this in footer sections to get dynamic copyright year
$year = date("Y", strtotime($yourDateVar)); In Laravel
$date = Carbon::now()->format('Y'); return $date; In PHP
echo date("Y"); 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.
Open
footer.phpin your theme's folder.Locate copyright text, expected this to be all hard coded but found:
<div> <?php the_field('copyright_disclaimer', 'options'); ?> </div>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
Optionson the left main admin menu:
Then on next page go to the tab Disclaimers:
and near the top you will find Copyright year:
DELETE the © symbol + year + the empty space following the year, then save your page with Updatebutton at top-right of page.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.phpand update that to this:<div> ©<?php echo date("Y"); ?> <?php the_field('copyright_disclaimer', 'options'); ?> </div>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.
0Print current month with M, day with D and year with Y.
<?php echo date("M D Y"); ?> 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'); 2create a helper function and call it
getCurrentYear(); function getCurrentYear(){ return now()->year; }