php - Yii2 - gridview filter unix timestamp -


मैं फिल्टर कोड के बारे में भ्रमित हूँ जैसे कि created_at या updated_at GridView में । Yii2 यूनिक्स टाइमस्टैम्प को MySQL डाटाबेस में पूर्णांक फ़ील्ड में सहेजने का सुझाव देता है। यह सब ठीक है लेकिन मैं उन मानों को कैसे फ़िल्टर कर सकता हूँ? अगर मैं केवल तारीख को फ़िल्टर करना चाहता हूं - क्या मुझे खोज पद्धति के लिए निम्नलिखित की तरह sth जोड़ना होगा?

  $ query- & gt; और फ़िलरवहाँ (['DATE (FROM_UNIXTIME ('। $ $--> तालिकानाम ()। '.created_at))' = & gt; $- इस- & gt; बनाया_एट] );  

या विशिष्ट प्रारूप के साथ FROM_UNIXTIME का उपयोग करें? यकीन है कि ऐसा किया जा सकता है, लेकिन क्षेत्र की तुलना करने के लिए सभी मूल्यों को तारीख में बदलने का मतलब है और फिर तुलना करें।

क्या मैं इसे गलत कर रहा हूं?

आप इसे गलत नहीं कर रहे हैं, लेकिन यदि आप टाइमस्टैम्प पर फ़िल्टर करना चाहते हैं तो आपके पास कम से कम दो विकल्प हैं।

  1. क्वेरी।
  2. जिस मूल्य को आप फ़िल्टर करना चाहते हैं उसे कनवर्ट करें।

आपकी टिप्पणी है कि यह सभी मानों को तिथि में परिवर्तित करने और इसकी तुलना करने के साथ किया जा सकता है, यह पहला है विकल्प (MySql एक तिथि के लिए हर बार टिकट मुद्रित करते हैं) (लेकिन क्या आपको तिथि के रूप में $ this- & gt; made_at को बदलने की जरूरत नहीं है?)।

दूसरे विकल्प के साथ, आप $ $ को परिवर्तित करते हैं - & gt; बनाया_आइट मान को एक न्यूनतम और उच्चतम यूनिक्स टाइमस्टैम्प मान के साथ और एक SELECT Between फ़िल्टर खंड का उपयोग करें। उस मामले में आपको केवल दो रूपांतरणों की ज़रूरत होती है जो पीएचपी (न्यूनतम और उच्चतम तिथि मान में रूपांतरण) द्वारा की जाती हैं और MySQL सिर्फ एक सीमा जांच करता है।


Comments