2011-10-06 25 views
12

के लिए iCal दिनांक प्रारूप में दिनांक php date का उपयोग कर iCal DTSTART के लिए सही प्रारूप प्राप्त करने का कोई आसान तरीका है?PHP दिनांक दिनांक DTSTART

मुझे इस तरह के प्रारूप की आवश्यकता है: 20111008T110000 या 20111008 (वह आसान है) यदि मेरे पास कोई समय नहीं है।

क्या PHP दिनांक के पास ऐसा करने का एक त्वरित तरीका है, विशेष रूप से वह जो समय जोड़ता है या आवश्यकता होने पर इसे हटा देता है?

+0

PHP दिनांक एक टाइमस्टैम्प है, इसमें हमेशा समय शामिल होता है। सेकंड। तुम क्या ढूंढ रहे हो? – hakre

+0

मुझे लगता है कि नीचे दिए गए उत्तरों जो मैं ढूंढ रहा था उसे प्रदान करता हूं। –

उत्तर

18

कोई मूल PHP फ़ंक्शन या दिनांक प्रारूप नहीं है जिसे मैं जानता हूं, इसलिए आपको अपना स्वयं का फ़ंक्शन बनाना होगा। कुछ इस तरह:

function getIcalDate($time, $incl_time = true) 
{ 
    return $incl_time ? date('Ymd\THis', $time) : date('Ymd', $time); 
} 

hakre के रूप में एक टिप्पणी में कहा, तारीख फ़ॉर्मेटर समय बिना समय के साथ एक तारीख और एक तारीख के बीच भेद नहीं कर सकते हैं - आपको लगता है कि पीछे तर्क तय करना होगा।

+0

क्या आप अंत में ज़ेड नहीं खो रहे हैं? –

+6

@DanyKalife: [आरएफसी] (http://www.ietf.org/rfc/rfc2445.txt) के अनुसार, दिनांक-समय मूल्य के लिए कई स्वीकार्य रूप हैं। 'जेड' के बिना एक को "स्थानीय समय के साथ तिथि" के रूप में जाना जाता है, जिसका अर्थ है कि इसके साथ जुड़े समय क्षेत्र की जानकारी नहीं है। पिछली 'ज़ेड' जोड़ना दिनांक-समय यूटीसी ("यूटीसी समय के साथ दिनांक") में डालता है। अंत में, आप समय क्षेत्र को स्पष्ट रूप से परिभाषित कर सकते हैं ("स्थानीय समय और समय क्षेत्र संदर्भ के साथ दिनांक")। – Viktor

+0

ओह अच्छा, यह जानना अच्छा है, मुझे उन विवरणों को पढ़ने में अधिक समय व्यतीत करना चाहिए: डी –

-2

यह हो सकता है कि आप link और this की तलाश कर रहे हों, आपकी सहायता भी कर सकते हैं।

mktime फ़ंक्शन टाइमस्टैम्प बनाने के लिए, जिसमें आप समय या केवल तारीख शामिल करना चाहते हैं।

+0

नीचे मतदान किया गया, प्रश्न DTSTART के लिए समय प्रारूप के लिए पूछ रहा था http://tools.ietf.org/html/rfc2445 – AshHimself

+0

लिंक डालने का जवाब देने का एक अच्छा तरीका नहीं है। लिंक समय के साथ पुराना या टूटा हो सकता है। – ionize

4
date('Ymd\THis', time()) 

आप अपनी खुद की टाइमस्टैम्प के साथ time() बदल सकते हैं।

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