2010-04-09 12 views
10

मुझे नहीं पता कि यह सही तरीके से कैसे समझाया जाए, लेकिन आपके लिए कुछ नमूना ताकि आप वास्तव में क्या कहने की कोशिश कर सकें।php भविष्य की तारीख का समय प्राप्त करें

आज अप्रैल 09, 2010

7 अब से इतने दिन अप्रैल 16,2010

इम एक php कोड है, जो मुझे अंतराल से पहले के दिनों की संख्या दे रही सही तारीख दे सकते हैं की तलाश में है आज की तारीख।

मैं ऐसे धागे की तलाश कर रहा हूं जो हल कर सकता है या यहां तक ​​कि इसे हल करने के संकेत पर भी संकेत दे सकता है लेकिन मुझे कोई नहीं मिला।

+0

पर एक नज़र डालें यह संभवतः के रूप में "मैं जोड़ना चाहते हैं rephrased जा सकता है' किसी दिए गए दिनांक पर $ x' दिनों की संख्या "? – deceze

+0

आपका प्रश्न स्पष्ट नहीं है। क्या आप फिर से निर्दिष्ट कर सकते हैं कि ज्ञात पैरामीटर क्या हैं और आप किस मूल्य में रूचि रखते हैं? –

उत्तर

25

आप उपयोग कर रहे हैं पीएचपी> = 5.2, मैं दृढ़ता से आप नए दिनांक समय वस्तु है, जो बहुत आसान तिथियों के साथ काम कर रहा है का उपयोग करने का सुझाव:

<?php 
$date = new DateTime("2006-12-12"); 
$date->modify("+7 day"); 
echo $date->format("Y-m-d"); 
?> 
+0

महान उत्तर, यह मुझे बहुत मदद करता है –

+1

या 1 लाइनर 'echo date_create ("2006-12-12") -> संशोधित करें ("+ 7 दिन") -> प्रारूप ("वाई-एम-डी"); ' –

9

यहाँ एक नजर डालें - http://php.net/manual/en/function.strtotime.php

<?php 
// This is what you need for future date from now. 
echo date('Y-m-d H:i:s', strtotime("+7 day")); 

// This is what you need for future date from specific date. 
echo date('Y-m-d H:i:s', strtotime('01/01/2010 +7 day')); 
?> 
+0

+1। आप स्ट्रेटोटाइम (...) 'गूंज नहीं करना चाहेंगे। इसके बजाय, दिनांक फ़ंक्शन के अंदर लौटाए गए मान का उपयोग करें, जैसे 'इको डेट (' वाई-एम-डी एच: आई: एस ', स्ट्रेटोटाइम (' - 7 दिन '))। –

0

आप तारीख के साथ mktime उपयोग कर सकते हैं। (http://php.net/manual/en/function.date.php)

दिनांक आपको वर्तमान दिनांक देता है। यह टाइमस्टैम्प में बस जोड़ने/घटाने से बेहतर है क्योंकि यह डेलाइट बचत समय को ध्यान में रख सकता है।

<?php 
# this gets you 7 days earlier than the current date 
$lastWeek = mktime(0, 0, 0, date("m") , date("d")-7, date("Y")); 
# now pretty-print it out (eg, prints April 2, 2010.) 
echo date("F j, Y.", $lastWeek), "\n"; 
?> 
2

आपको strtotime() में देखना होगा। मैं अपने अंतिम कोड कुछ इस तरह दिखेगा कल्पना:

$future_date = "April 16,2010"; 
$seconds = strtotime($future_date) - time(); 
$days = $seconds /(60 * 60* 24); 
echo $days; //Returns "6.0212962962963" 
+0

"6.0212962962963" - PHP फ्लोट सटीक समस्या का शास्त्रीय उदाहरण :) –

+0

वास्तव में, दशमलव के रूप में प्रतिनिधित्व किए गए दिनों की _exact_ संख्या नहीं। – Sam152

1

यदि आप PHP> = 5.3 का उपयोग कर रहे हैं, तो यह एक विकल्प हो सकता है।

<?php 
$date = new DateTime("2006-12-12"); 
$date->add(new DateInterval("P7D")); 
?> 
5

स्वीकार किए जाते हैं जवाब गलत नहीं बल्कि सबसे अच्छा समाधान नहीं है:

दिनांक समय वर्ग निर्माता में एक वैकल्पिक स्ट्रिंग, जो एक ही तर्क को परिभाषित कर सकते विधि को संशोधित रूप में लेता है।

<?php 
$date = new DateTime("+7 day"); 

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

<?php 
namespace DateTimeExample; 

$now = new \DateTime("now"); 
$inOneWeek = new \DateTime("+7 day"); 

printf("Now it's the %s", $now->format('Y-m-d')); 
printf("In one week it's the %s", $inOneWeek->format('Y-m-d')); 

(दिनांक समय निर्माता के लिए) उपलब्ध रिश्तेदार स्वरूपों की सूची के लिए http://php.net/manual/de/datetime.formats.relative.php

संबंधित मुद्दे