php का उपयोग करके कल की तारीख कैसे प्राप्त करें?


90

मैं विशिष्ट तिथि प्रारूप का उपयोग करके कल की तारीख प्राप्त करना चाहता हूं, यह प्रारूप है:

$today = date("d.m.Y"); //15.04.2013

क्या यह संभव है?

यदि उन्हें संबंधित में बदला जाना चाहिए तो महीने और वर्षों का ध्यान रखें।


1
दिनांक ("डमी", समय) () - 60 * 60 * 24);
NINCOMPOOP

क्या आपने मेरे समाधान की कोशिश की? यह बदलते महीनों के साथ
Fabio

सही समय जब मेरे ऊपर उपयोगकर्ता नाम "noob" अपनी टिप्पणी के लिए एक अच्छा अर्थ जोड़ता है :)
STT LCU

जवाबों:


262

तुम वहाँ जाओ

date('d.m.Y',strtotime("-1 days"));

अगर महीने में बदलाव होता है तो यह भी काम करेगा


एक छोटा सा नाइट-पिक: आपका कार्य आधी रात के करीब मुसीबत में पड़ जाता है अगर उस समय में डीएसटी-परिवर्तन होता है। स्पष्ट रूप से दोपहर के समय वहां जाने से मदद मिलती है।
डेडुप्लिकेटर 16

1
गलत है । DST के बारे में 3 बातें: 1 यह सर्वर समय पर निर्भर करता है, यदि सर्वर का सही समय क्षेत्र है तो यह मेरे कार्य को प्रभावित नहीं करेगा। 2 पूरी दुनिया डीएसटी से प्रभावित नहीं है, ऐसे स्थान हैं जो इसका उपयोग नहीं करते हैं। 3 अधिकांश स्थान दिन के पहले घंटों (जैसे 2 या 3 बजे) के दौरान समय बदलने के लिए उपयोग करते हैं, इसलिए यह बदलते दिन को प्रभावित नहीं करेगा।
फेबियो

1
1. तो उस समारोह को जानता है और ध्यान रखता है कि एक दिन 24 घंटों के अलावा भी हो सकता है? 2. यहां तक ​​कि एक टूटी हुई घड़ी भी प्रतिदिन दो बार सही है। 3. सटीक घंटे जो चुराया / डुप्लिकेट किया गया है वह गणना के लिए महत्वपूर्ण नहीं है।
डेडुप्लिकेटर

1
कोई मतलब नहीं 1 दिन 24 अनटैल डीएसटी के अलावा अन्य नहीं है समय बदल जाता है और सर्वर 2 के अनुसार समय बदलता है, लेकिन यह बात 3 नहीं है इसके बजाय यह बहुत महत्वपूर्ण है, आपका विचार सही हो सकता है यदि समय आधी रात को बदलता है, अन्य घंटों में नहीं
Fabio

7

आप यह कर सकते हैं

date("F j, Y", time() - 60 * 60 * 24);

या द्वारा

date("F j, Y", strtotime("yesterday"));

3
दिन के उजाले की बचत की गारंटी नहीं है ... लोगों को वास्तव में इन दिनों डेटाइम वस्तुओं का उपयोग करना चाहिए
मार्क बेकर

UTC समय पर काम करेगा तो ठीक रहेगा। date_default_timezone_set ( 'यूटीसी');
पैट्रिक

7

चरण 1

हमें फ़ंक्शन तिथि () में प्रारूप डेटा सेट करने की आवश्यकता है: फ़ंक्शन दिनांक () दिए गए पूर्णांक टाइमस्टैम्प या वर्तमान समय में ifno टाइमस्टैम्प का उपयोग करके दिए गए स्ट्रिंग के अनुसार स्वरूपित स्ट्रिंग देता है। दूसरे शब्दों में, टाइमस्टैम्पिस वैकल्पिक और समय के मूल्य () के लिए वैकल्पिक।

<?php
echo date("F j, Y");
?>

परिणाम: 30 मार्च, 2010

चरण 2

"कल" की तारीख के लिए php फंक्शन mktime () का उपयोग करें: फंक्शन mktime () यूनिक्स टाइमस्टैम्प को दिए गए thearguments के अनुरूप देता है। यह टाइमस्टैम्प एक लंबा पूर्णांक है जिसमें यूनिक्स एपोच (1 जनवरी 1970 00:00:00 GMT) और निर्दिष्ट समय के बीच की संख्या के सेकंड शामिल हैं। दायें से बायें क्रम में तर्क छोड़े जा सकते हैं; छोड़े गए किसी भी तर्क को स्थानीय मान और समय के अनुसार वर्तमान मूल्य पर सेट किया जाएगा।

<?php
echo mktime(0, 0, 0, date("m"), date("d")-1, date("Y"));
?>

परिणाम: 1269820800

चरण 3

अब सभी को मर्ज करें और इसे देखें:

<?php
$yesterday = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")-1,date("Y")));
echo $yesterday;
?>

परिणाम: 29 मार्च, 2010

इसी तरह से काम करते हुए, समय से पहले घंटे प्राप्त करना संभव है।

<?php
$yesterday = date("H:i:s",mktime(date("H"), 0, 0, date("m"),date("d"), date("Y")));
echo $yesterday;
?>

परिणाम: 20:00 बजे

या 7 दिन पहले:

<?php
$week = date("Y-m-d",mktime(0, 0, 0, date("m"), date("d")-7,date("Y")));
echo $week;
?>

परिणाम: 2010-03-23


7

इसे इस्तेमाल करे

        $tz    = new DateTimeZone('Your Time Zone');
        $date  = new DateTime($today,$tz);
        $interval = new DateInterval('P1D');
        $date->sub($interval); 

        echo $date->format('d.m.y');

        ?>           

इस php.net/manual/en/book.datetime.php 'को देखें .. यह महीने के बदलाव के साथ काम करेगा
हमेशा 7

9
नया दिनांक समय ('कल')
वर्जिल गार्सिया

$ कल = नया दिनांक समय ('कल', नया दिनांक समयक्षेत्र ('आपका समय क्षेत्र'));
मिरालॉन्ग

इस कोड-केवल उत्तर के साथ थोड़ा स्पष्टीकरण अच्छा होगा।
मिकमैकुसा 20


2

इसे इस्तेमाल करे

<?php
$yesterday = date(“d.m.Y”, time()-86400);
echo $yesterday;

3
दिन के उजाले को बचाने के कारण हमेशा 86400 सेकंड नहीं होते हैं! तो यह गणना साल में दो बार गलत हो सकती है!
sbrbot

... और छलांग सेकंड के कारण।
सेबेस्टियन मच

2

यदि आप अपने PHP ऐप में टाइमज़ोन को परिभाषित करते हैं (जैसा आपको चाहिए), जिसे आप इस तरह से कर सकते हैं:

date_default_timezone_set('Europe/Paris');

फिर यह उतना ही सरल है:

$yesterday = new DateTime('yesterday'); // will use our default timezone, Paris
echo $yesterday->format('Y-m-d'); // or whatever format you want

(आप अपने डिफ़ॉल्ट टाइमज़ोन को संग्रहीत करने के लिए एक निरंतर या पर्यावरण चर को परिभाषित करना चाह सकते हैं।)


1

सटीक समय निर्धारित करने के साथ DateTime के लिए एक और OOP विधि:

$yesterday = new DateTime("yesterday 09:00:59", new DateTimeZone('Europe/London'));
echo $yesterday->format('Y-m-d H:i:s') . "\n";

0

आप इसका उपयोग करके भी कर सकते हैं कार्बन लाइब्रेरी :

Carbon::yesterday()->format('d.m.Y');         // '26.03.2019'

अन्य स्वरूपों में:

Carbon::yesterday()->toDateString();          // '2019-03-26'
Carbon::yesterday()->toDateTimeString();      // '2019-03-26 00:00:00'

Carbon::yesterday()->toFormattedDateString(); // 'Mar 26, 2019'
Carbon::yesterday()->toDayDateTimeString();   // 'Tue, Mar 26, 2019 12:00 AM'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.