2009-03-18 14 views
34

कहें कि मेरे पास एक स्ट्रिंग आ रही है, "2007-02-28", "2007-03-01" में बदलने के लिए मैं सबसे सरल कोड क्या लिख ​​सकता हूं? अभी मैं strtotime() का उपयोग कर रहा हूं, फिर 24*60*60 जोड़ रहा हूं, फिर date() का उपयोग कर रहा हूं, लेकिन यह सोचकर कि क्या क्लीनर, सरल, या इसे करने का अधिक चालाक तरीका है। , एक दृश्यPHP में एक तिथि बढ़ाने के लिए सबसे आसान तरीका?

$date = new DateTime($input_date); 
$date->modify('+1 day'); 
echo $date->format('Y-m-d'); 

लेकिन वह वास्तव में केवल दूर से उपयुक्त है कि अगर आप, क्या कर रहे हैं कहते हैं:

उत्तर

72

एक साफ रास्ता उपयोग करने के लिए strtotime()

$date = strtotime("+1 day", strtotime("2007-02-28")); 
echo date("Y-m-d", $date); 

आप देंगे है 2007-03-01

29

यह 86400. :)

उच्च तकनीक रास्ता जोड़ने के लिए स्वच्छ और आसान है करना है कल खोजने के बजाय तिथि पर परिवर्तनों का।

+1

बेवकूफ CentOS केवल पीएचपी 5.1 है , और डेटटाइम 5.2 में पेश किया गया है। मुझे लगता है कि मुझे अंत में एक अनौपचारिक केंद्र php पैकेज में अपग्रेड करना होगा। – davr

+3

एर, नहीं। बस 86400 जोड़ना झूठी सादगी है। – staticsan

+0

क्या आप समझा सकते हैं कि इसका मतलब क्या है? – chaos

16

आप इसके अलावा सही strtotime अंदर कर सकते हैं, जैसे कि

$today="2007-02-28"; 
$nextday=strftime("%Y-%m-%d", strtotime("$today +1 day")); 
+0

ओह, साफ। उसे नहीं पता था। यह लगभग पुरानी तारीख :: मणिप की तरह है। – chaos

6

फ़ंक्शन mktime() का उपयोग करने का एक और तरीका है। यह बहुत ही उपयोगी समारोह है ...

$date = "2007-02-28"; 
list($y,$m,$d)=explode('-',$date); 
$date2 = Date("Y-m-d", mktime(0,0,0,$m,$d+1,$y)); 

लेकिन मुझे लगता है strtotime() उस स्थिति में बेहतर है ...

+0

अच्छा, मुझे एहसास नहीं हुआ कि mktime() उस महीने की वृद्धि करेगा जब आप –

5

सबसे आसान तरीका है ...

echo date('Y-m-d',strtotime("+1 day")); //from today 

या निर्धारित तिथि से .. ।

echo date('Y-m-d',strtotime("+1 day", strtotime('2007-02-28'))); 
-1
$early_start_date = date2sql($_POST['early_leave_date']); 


     $date = new DateTime($early_start_date); 
     $date->modify('+1 day'); 


     $date_a = new DateTime($early_start_date . ' ' . $_POST['start_hr'] . ':' . $_POST['start_mm']); 
     $date_b = new DateTime($date->format('Y-m-d') . ' ' . $_POST['end_hr'] . ':' . $_POST['end_mm']); 

     $interval = date_diff($date_a, $date_b); 
0

हेल लो आप इस नीचे की कोशिश कर सकते, खासकर अगर तुम फ्रेंच हैं

$date = date('l j F Y'); 
#increment the date 
$date2 = date('l j F Y', strtotime("+7 day")); 

में फ्रेंच आप setlocale() फ़ंक्शन या नीचे समारोह का उपयोग कर सकते अनुवाद करने के लिए:

function fr_date($date){ 

    $date = explode(' ', $date); 

    $date = str_replace('Monday','Lundi',$date); 
    $date = str_replace('Tuesday','Mardi',$date); 
    $date = str_replace('Wednesday','Mercredi',$date); 
    $date = str_replace('Thursday','Jeudi',$date); 
    $date = str_replace('Friday','Vendredi',$date); 
    $date = str_replace('Saturday','Samedi',$date); 
    $date = str_replace('Sunday','Dimanche',$date); 

    $date = str_replace('January','Janvier',$date); 
    $date = str_replace('February','Février',$date); 
    $date = str_replace('March','Mars',$date); 
    $date = str_replace('April','Avril',$date); 
    $date = str_replace('May','Mai',$date); 
    $date = str_replace('June','Juin',$date); 
    $date = str_replace('July','Juillet',$date); 
    $date = str_replace('August','Août',$date); 
    $date = str_replace('September','Septembre',$date); 
    $date = str_replace('October','Octobre',$date); 
    $date = str_replace('November','Novembre',$date); 
    $date = str_replace('December','Décembre',$date); 

    $date = implode(' ',$date); 
    return $date; 

} 
0
$your_date = strtotime("1month", strtotime(date("Y-m-d"))); 
$new_date = date("Y-m-d", $your_date++); 
+0

/("1month") = महीने तक बढ़ेगा। // ("1day") = दिन में वृद्धि होगी। // (दिनांक ("वाई-एम-डी")) = वर्तमान तिथि पर तिथि बढ़ाने की शुरुआत करें। –

+2

टिप्पणी में स्पष्टीकरण के बजाय, आपको कोड के स्पष्टीकरण को शामिल करने के लिए अपना उत्तर संपादित करना चाहिए। – astidham2003

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