वर्तमान वर्ष प्राप्त करने के लिए मैं PHP का उपयोग कैसे करूँ?


934

मैं एक वेब साइट के पाद लेख में कॉपीराइट नोटिस डालना चाहता हूं, लेकिन मुझे लगता है कि वर्ष के लिए आउट-ऑफ-डेट होना अविश्वसनीय रूप से कठिन है। मैं PHP 4 और PHP 5 के साथ स्वचालित रूप से वर्ष अपडेट कैसे करूंगा ?


629
echo date("Y");
191

2
मुझे इसका उपयोग करके एक चेतावनी मिली। जोड़ा गया date_default_timezone_set ('UTC'); चेतावनी पाने से बचने के लिए। ('UTC + 1' काम नहीं करता है ... आपको इतना नहीं बता सकता जितना कि बस PHP से शुरू होता है)। संभवतः चेतावनियों को फेंकने से बचने के लिए PHP को कॉन्फ़िगर करने का कोई तरीका है (हालांकि कुछ config फाइल जैसे php.ini में)।
जस्टिन

4
@ अन्याय इसका मतलब है कि आपने डिफ़ॉल्ट टाइमज़ोन सेट नहीं किया है और PHP ऐसा नहीं करता है। आप या तो php.iniफ़ाइल में डिफ़ॉल्ट टाइमज़ोन को कुछ इस तरह date.timezone = "America/Los_Angeles"सेट कर सकते हैं या आप इसे अपने कोड की शुरुआत में कुछ इस तरह से सेट कर सकते हैं date_default_timezone_set( "America/Los_Angeles" )
जोशुआ पिंटर

7
नोट: कॉपीराइट नोटिस में वर्ष वास्तव में बहुत कानूनी मूल्य नहीं है, लेकिन आमतौर पर उन लोगों की सहायता के लिए जोड़ा जाता है जो जानना चाहते हैं कि क्या कॉपीराइट अभी भी लागू होता है। जैसा कि यह माना जाता है कि यह वर्ष प्रकाशित किया गया था। बस चालू वर्ष का उपयोग करना वास्तव में कोई मायने नहीं रखता है ... हालाँकि मैंने इसे अनगिनत बार देखा है।
स्टिजन डे विट

7
मैं व्यक्तिगत रूप से तर्क दूंगा कि यह एक वेब सम्मेलन बन गया है, इसलिए यद्यपि आप तकनीकी रूप से सही हैं, यह लोगों की अपेक्षा नहीं है। यह तथ्य यह है कि हालांकि, "कॉपीराइट 2007" होने के बावजूद, सभी अधिकार सुरक्षित हैं, जो कि 2007 में लिखे गए लेख वाले पृष्ठ के पाद लेख पर लिखा हुआ है, तकनीकी रूप से सही है, साइट पर आगंतुकों को यह मानने की संभावना है कि साइट को छोड़ दिया गया है। यहां तक ​​कि बड़े भी। वकीलों की टीमों के साथ निगम अभी भी चालू वर्ष के साथ अपने वेब पेजों पर मुहर लगाते हैं, भले ही यह '2007-2015' हो।
नाथन हॉर्बी

जवाबों:


1149

आप डेट या स्ट्रैफ़टाइम का उपयोग कर सकते हैं । इस मामले में मैं कहूंगा कि यह एक वर्ष के रूप में कोई फर्क नहीं पड़ता एक वर्ष है, कोई फर्क नहीं पड़ता (जब तक कि एक स्थान नहीं है जो वर्ष को अलग तरीके से प्रारूपित करता है?)

उदाहरण के लिए:

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

एक ओर ध्यान दें, जब PHP में तारीखों को प्रारूपित करते समय यह मायने रखता है जब आप अपनी तिथि को अपने डिफ़ॉल्ट से भिन्न प्रारूप में प्रारूपित करना चाहते हैं। यदि ऐसा है, तो आपको सेटलोकाले और स्ट्रैपटाइम का उपयोग करना होगा। तिथि पुस्तिका के अनुसार :

अन्य भाषाओं में तारीखों को प्रारूपित करने के लिए, आपको तारीख () के बजाय सेटलोकाले () और स्ट्रैपटाइम () फ़ंक्शन का उपयोग करना चाहिए।

इस दृष्टिकोण से, मुझे लगता है कि स्ट्रैप्टम का यथासंभव उपयोग करना सबसे अच्छा होगा, यदि आपके पास अपने आवेदन को स्थानीयकृत करने की कोई दूरस्थ संभावना है। यदि यह कोई समस्या नहीं है, तो आपको जो सबसे अच्छा लगता है, उसे चुनें।


4
@ ErikvanBrakel थाइलैंड में मौजूदा वर्ष से बाहर ब्याज की दर 2556 है। निश्चित नहीं है कि अगर PHP लोकेल इसे ध्यान में रखता है, लेकिन एक आदर्श दुनिया में यह होना चाहिए :)
डिर्क हार्टज़र वाल्डेक

आप बस इतना कह सकते हैं: तारीख ("वाई");

चीनी और जापानी साल ftw! । Pan / 二千 十六 年
Panzercrisis

3
अगर मैं Youtube पर ऐसा कर सकता था। "जैसे अगर आप इसे देख रहे हैं <? Php इको डेट (" Y ")?>?"
लूका

मैंने इस्तेमाल क्यों किया 'y'? : /
गुग्गा नेम्सित्सरविदेज़

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

32
इसके अलावा,<?= date('Y') ?>
शेन रीस्टल

33
लघु टैग सभी सर्वरों द्वारा समर्थित नहीं हैं और यह भी है: programmers.stackexchange.com/questions/151661/…
डिर्क हार्टज़र वाल्डेक

5
PHP 5.4 में, आप स्वतंत्र रूप से उपरोक्त की तरह छोटे इको टैग का उपयोग कर सकते हैं। वे विचारों में बहुत अच्छे हैं।
जिम्बो

1
@ShaneReustle, आप अंत में सेमीकोलन से चूक गए;) मुझे पता है कि वे इस मामले में महत्वपूर्ण नहीं हैं, लेकिन शुरुआती लोगों के लिए यह एक अच्छा अभ्यास है :)
दिमित्र

204

कॉपीराइट लाइन दिखाने का मेरा सुपर आलसी संस्करण, जो स्वचालित रूप से अपडेट रहता है:

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

यह वर्ष (2008), यह कहेगा:

© 2008 मुझे, इंक।

अगले साल, यह कहेगा:

© 2008-2009 मुझे, इंक।

और हमेशा चालू वर्ष के साथ अपडेट रहें।


या (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

70

PHP को अधिक ऑब्जेक्ट-ओरिएंटेड दिशा में ले जाने के साथ, मुझे आश्चर्य है कि यहाँ किसी ने अंतर्निहित DateTimeवर्ग का संदर्भ नहीं दिया है :

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

या इंस्टेंटेशन पर क्लास मेंबर एक्सेस के साथ वन-लाइनर (php> = 5.4):

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


28
strftime("%Y");

मुझे स्ट्रगल बहुत पसंद है । यह तारीखों / समय का हिस्सा / पुनः प्राप्त करने के लिए एक शानदार कार्य है।

इसके अलावा यह स्थानीय सेटिंग्स का सम्मान करता है जो दिनांक फ़ंक्शन नहीं करता है।



12

4 अंकों के प्रतिनिधित्व के लिए:

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

2 अंक प्रतिनिधित्व:

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

अधिक जानकारी के लिए php प्रलेखन की जाँच करें: https://secure.php.net/manual/en/function.date.php


12

यहाँ मैं क्या कर रहा हूँ:

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

नीचे यह क्या करता है की व्याख्या का एक सा है:

d = day
m = month
Y = year

Y आपको चार अंक देगा (उदाहरण के लिए 1990) और y दो अंकों के लिए (उदाहरण के लिए 90)


10

echo date('Y')आपको वर्तमान वर्ष देता है, और date()वर्तमान तिथि देने के बाद से यह स्वचालित रूप से अपडेट हो जाएगा ।



8

एक PHP फ़ंक्शन का उपयोग करें जिसे बस कहा जाता है date()

यह वर्तमान तिथि लेता है और फिर आप इसे एक प्रारूप प्रदान करते हैं

और प्रारूप केवल Y होने जा रहा है। Capital Y चार वर्ष का होने जा रहा है।

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

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

यह कोड करना चाहिए


1
शॉर्ट फॉर्म टैग से बचने की कोशिश करें, क्या यह <है? या <? = क्योंकि यह एक अच्छा अभ्यास नहीं है। हालांकि यह ध्यान देने योग्य है कि Zend जैसे कई अच्छे फ्रेमवर्क शॉर्टहैंड PHP को ओपनिंग टैग लिंक की अनुमति नहीं देते हैं, इसलिए कृपया मेरी खातिर अपने कोड की पठनीयता को बचाने के लिए कुछ कीस्ट्रोक्स करें।
वल असफ

7

यदि आपका सर्वर शॉर्ट टैग का समर्थन करता है, या आप PHP 5.4 का उपयोग करते हैं, तो आप उपयोग कर सकते हैं:

<?=date("Y")?>

6
कृपया, कभी भी, कभी भी, कभी भी शॉर्ट-टैग का उपयोग न करें। stackoverflow.com/questions/200640/…
जेलेमर

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

5.4+ php तक

<?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 होने जा रहा है। Capital Y चार वर्ष का होने जा रहा है।

<?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
यह वह नहीं है जो वे पूछ रहे हैं और न ही एक समझाया गया उत्तर है।
इलियट ए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.