Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP दिनांक को रिक्त दिन/घंटे/सेकंड पहले कनवर्ट करें

आपको अपनी तिथियों को हमेशा MySQL के डेटाटाइम प्रारूप (YYYY-MM-DD) में सहेजना चाहिए। यह आपको MySQL की अंतर्निहित दिनांक कार्यक्षमता का आसानी से लाभ उठाने की अनुमति देता है। इसे किसी अन्य प्रारूप में संग्रहीत करने का अर्थ है (संभावित रूप से बहुत अधिक) आपके लिए अधिक काम जब आप और अधिक करना चाहते हैं तो बस उन मानों को प्रदर्शित करें।

PHP के साथ आप जो करना चाहते हैं उसे पूरा करने के लिए आप DateTime() (इस उत्तर पर आधारित ):

$datetime1 = new DateTime($firstDate);
$datetime2 = new DateTime($secondDate);
$interval  = $datetime1->diff($datetime2);
if ($interval->days <= 7)
{
    $elapsed   = $interval->format('%y years, %m months, %a days, %h hours, %i minutes, %S seconds');
    $elapsed   = str_replace(array('0 years,', ' 0 months,', ' 0 days,',  ' 0 hours,', ' 0 minutes,'), '', $elapsed);
    $elapsed   = str_replace(array('1 years, ', ' 1 months, ', ' 1 days, ',  ' 1 hours, ', ' 1 minutes'), array('1 year, ', '1 month, ', ' 1 day, ', ' 1 hour, ', ' 1 minute'), $elapsed);
    echo $elapsed;
}
else 
{
    echo $firstDate;
}

$datetime1 = new DateTime($firstDate);
$datetime2 = new DateTime($secondDate);

ये पंक्तियां DateTime() create बनाती हैं वस्तुओं को उनकी संबंधित तिथियों के साथ।

$interval  = $datetime1->diff($datetime2);

यह पंक्ति पहली तारीख से दूसरी तारीख को घटाती है और अंतर को DateInterval() . के रूप में लौटाती है वस्तु।

if ($interval->days > 7)

यह रेखा यह देखने के लिए जाँच करती है कि दो तिथियों के बीच सात या अधिक दिन बीत चुके हैं। यदि ऐसा है तो पहला कोड ब्लॉक निष्पादित किया जाता है। यदि नहीं, तो पहली तारीख का प्रिंट आउट ले लिया जाता है।

$elapsed   = $interval->format('%y years, %m months, %a days, %h hours, %i minutes, %S seconds');
$elapsed   = str_replace(array('0 years,', ' 0 months,', ' 0 days,',  ' 0 hours,', ' 0 minutes,'), '', $elapsed);
$elapsed   = str_replace(array('1 years, ', ' 1 months, ', ' 1 days, ',  ' 1 hours, ', ' 1 minutes'), array('1 year, ', '1 month, ', ' 1 day, ', ' 1 hour, ', ' 1 minute'), $elapsed);
echo $elapsed;

यह कोड ब्लॉक केवल दो तिथियों के बीच दिनांक अंतर लेता है (एक DateInterval() ऑब्जेक्ट) और आपके द्वारा अनुरोधित प्रारूप में इसे प्रारूपित करता है। दूसरी पंक्तियाँ किसी भी समयावधि को हटा देती हैं जिसका कोई मान नहीं है (अर्थात 0 महीने) और उन्हें स्ट्रिंग से हटा देता है। तीसरी पंक्ति एक मान (यानी 1 महीने) के साथ कोई भी अवधि लेती है और अंत में अनावश्यक 's' को काट देती है (यानी 1 महीना 1 महीना हो जाता है)।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql इंजेक्शन नुकसान?

  2. PHP में दो अलग-अलग डेटाबेस से कनेक्ट करें?

  3. ट्विटर एपीआई से JSON में शामिल है \u2019

  4. MySQL आउटपुट मास्किंग (यानी फोन नंबर, SSN, आदि डिस्प्ले फॉर्मेटिंग)

  5. मैं एक MySQL डीबी से 0 कैसे वापस कर सकता हूं जब क्लॉज में टर्म डेटाबेस में नहीं है?