2011-04-03 14 views
11

क्या कोई मुझे डेटाटाइम (28-1-2011 14:32:55) को केवल दिनांक (28-1-2011) में विभाजित करने के लिए एक त्वरित और गंदा तरीका दे सकता है और समय (14:32) या यहां तक ​​कि बेहतर (2:32 अपराह्न) PHP का उपयोग कर। एक mySQL डेटाबेस का भी उपयोग करना।डेटटाइम को दिनांक और एक समय मान में विभाजित करना

चीयर्स

+0

में datetime सरणी सॉर्ट होगा आप "एक datetime" वास्तव में से क्या मतलब है? एक स्ट्रिंग, या 'डेटटाइम' ऑब्जेक्ट? –

+0

मेरे पास मेरे वेबपृष्ठ पर एक पॉपअप कैलेंडर है और यह एक स्ट्रिंग को 28-1-2011 14:32:55 के रूप में देता है। लेकिन मेरे डेटाबेस में मेरे पास डेट कॉलम और टाइम कॉलम है। तो PHP में मैं बस उन्हें 2 अलग चर में विभाजित करना चाहता हूं। –

उत्तर

10

अगर डेटा के अपने स्रोत MySQL है:

SELECT DATE(date_field) AS date_part, TIME(date_field) AS time_part .... 

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_time

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date

संपादित करें:

: टिप्पणियों से सवाल (उदाहरण) जवाब देने के लिए
WHERE DATE(date_field) > '2017-01-01' 
+1

Yup ... PHP में वापस पार्स करके प्रयास को डुप्लिकेट करने के बजाय क्वेरी से पहले से ही विभाजित उत्तर प्राप्त करें। – DRapp

+0

यह तेज़ है लेकिन कभी-कभी आपको इसे PHP में करने की आवश्यकता होती है। –

+0

'कहां' स्थिति में 'date_part' का उपयोग कैसे करें ?? –

6

PHP में आप आसानी से निष्कर्षण के लिए date और strtotime फ़ंक्शंस का उपयोग कर सकते हैं।

$datetime = "28-1-2011 14:32:55"; 
$date = date('Y-m-d', strtotime($datetime)); 
$time = date('H:i:s', strtotime($datetime)); 
+0

बिल्कुल सही धन्यवाद –

19

आप PHP उपयोग कर रहे हैं> 5.2:

$myvalue = '28-1-2011 14:32:55'; 

$datetime = new DateTime($myvalue); 

$date = $datetime->format('Y-m-d'); 
$time = $datetime->format('H:i:s'); 

पहले पीएचपी 5.2 mhitza के लिए एक अच्छा जवाब दिया।

+0

(sidenote) ध्यान रखें कि डेटटाइम ऑब्जेक्ट php.ini में डिफ़ॉल्ट समय क्षेत्र सेट का उपयोग करता है, अगर कोड द्वारा नहीं बदला जाता है। हमेशा समय क्षेत्र निर्धारित करें! हालांकि, यह +1 के लिए सही कोड है। – Wh1T3h4Ck5

+0

किसी के पास date_parse() का उपयोग करके इस छंद के ऊपरी हिस्से के विचार हैं – Abela

0

यदि आप वास्तव में त्वरित और गंदे समाधान की तलाश में हैं।

$datetime = "28-1-2011 14:32:55"; 
$date_arr= explode(" ", $datetime); 
$date= $date_arr[0]; 
$time= $date_arr[1]; 
0

आप अपने MySQL से तारीख में पार्स करने के लिए चाहते हैं और आप समय दूर करने के लिए तो आप इस सुविधा का उपयोग कर सकते हैं चाहते हैं, तो

$date1=date("Y-m-d",strtotime('$your database field')) 
0

एक साधारण अनुदेश चाल करना होगा

विस्फोट डेटाटाइम को एक सरणी में बदल देगा

और सूची अपने आवश्यक मान

$datetime = "28-1-2011 14:32:55"; 
 
list($date, $time)=explode(' ', $datetime); 
 

 
// check the result 
 
echo "date:". $date; 
 
echo "<br>time:". $time; 
 

 
// further more you can easily split the date into 
 
// year month and day 
 
list($year, $month, $day)=explode('-', $date);

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