php

2012-12-20 6 views
7

में छह महीने जोड़ें मैं वर्तमान तारीख से छह महीने पहले महीने प्राप्त करने की कोशिश कर रहा हूं।php

मैं का उपयोग कर की कोशिश की है:

date('d', strtotime('+6 month', time()));

लेकिन यह काम करने के लिए नहीं लगता है, हमेशा 01 देता है। क्या ऐसा करने के लिए इससे अच्छा तरीका है?

धन्यवाद!

+0

चेक एक अलग रूप में, 'strtotime के रूप में () यदि आप दूसरे पैरामीटर को छोड़ देते हैं तो डिफ़ॉल्ट रूप से वर्तमान समय का उपयोग करता है। साथ ही, मुझे नहीं लगता कि 'strtotime() 'महीनों की गणना करेगा क्योंकि यह पूर्णकालिक अवधि नहीं है, उदा। महीने-दर-महीने आधार पर दिनों की संख्या अलग-अलग होती है। –

उत्तर

18

मैं उपयोग करने के लिए DateTime साथ बहुत आसान काम कर पाते हैं:

$datetime = new DateTime(); 
$datetime->modify('+6 months'); 
echo $datetime->format('d'); 

या

$datetime = new DateTime(); 
$datetime->add(new DateInterval('P6M')); 
echo $datetime->format('d'); 

या में PHP संस्करण 5.4+

echo (new DateTime())->add(new DateInterval('P6M'))->format('d'); 
+0

सही काम करता है, धन्यवाद! – dzm

2

आप अभी भी strtotime उपयोग करना चाहता था और डेटटाइम() ऑब्जेक्ट के विपरीत दिनांक कार्य, निम्न कार्य करेगा:

date('d', strtotime('+6 months')); 
0

आपको स्ट्रेटोटाइम पर time() पास करने की आवश्यकता नहीं है, क्योंकि यह डिफ़ॉल्ट है।

इसके अलावा, आपका दृष्टिकोण सही है - सिवाय इसके कि आप date('d') (जो दिन निकाल रहे हैं) और date('m') महीने के लिए नहीं लेते हैं, इसलिए echo date('m', strtotime('+6 month')); करना चाहिए।

फिर भी, मैं DateTime तरीके का उपयोग करने की सलाह दूंगा, जो जॉन ने कहा था। DateTime में "पुराने" दिनांक कार्यों पर कई फायदे हैं, उदाहरण के लिए वे काम करना बंद नहीं करते हैं जब यूनिक्स बड़ी बैंग 32 बिट पूर्णांक में फिट नहीं होती है।

1

आप DateInterval वर्ग के साथ संयोजन के रूप में DateTime वर्ग का उपयोग कर सकते हैं:

<?php 
$date = new DateTime(); 
$date->add(new DateInterval('P6M')); 

echo $date->format('d M Y'); 
0

आप simpleDate वर्ग का उपयोग कर सकते हैं:

include('../code/simpleDate.php'); 
$date = new simpleDate(); 
echo $date->now()->addMonth(6)->get(); 

tutorials here.

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