2011-01-02 9 views
60

ऐसे कई प्रश्न हैं जो 'यूनिक्स टाइमस्टैम्प को MySQL टाइम' के बारे में पूछते हैं। मुझे उलटा रास्ता चाहिए, हाँ ... कोई विचार?PHP का उपयोग कर MySQL समय को यूनिक्स टाइमस्टैम्प में कैसे परिवर्तित करें?

उत्तर

116

उपयोग strtotime(..):

$timestamp = strtotime($mysqltime); 
echo date("Y-m-d H:i:s", $timestamp); 

यह भी देखें (इसे MySQL तरीके से करने के लिए।)

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp

+3

स्ट्रेटोटाइम का उपयोग करते समय समय क्षेत्र से सावधान रहें। यह प्रश्न देखें: http://stackoverflow.com/questions/10417179/is-the-result-of-strtotime-is-changed-based-on-the-timezone – Eric

48

आप अपनी क्वेरी से UNIX_TIMESTAMP समारोह सीधे के mysql कर सकते हैं, यहाँ एक उदाहरण है:

SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19'); 

इसी तरह, आप की तारीख/datetime क्षेत्र में पारित कर सकते हैं:

SELECT UNIX_TIMESTAMP(yourField); 
+0

यह क्षेत्र काम नहीं करेगा यदि फ़ील्ड एक टाइम फ़ील्ड है, केवल DATE, DATETIME या दिन, महीनों और वर्षों के साथ एक स्ट्रिंग –

5
$time_PHP = strtotime($datetime_SQL); 
+2

** के कुछ स्पष्टीकरण ** क्यों ** यह प्रश्न का उत्तर देता है उत्तर को और अधिक उपयोगी बना देगा। * (मुझे पता है कि वहां शायद कई अन्य लाइन उत्तरों हैं, लेकिन उन्हें अभी जोड़ा नहीं गया है) * – ChrisF

+2

सवाल यह था कि $ mysql_timestamp को $ php_timestamp में कैसे परिवर्तित करें, इसका जवाब यह है कि "स्ट्रेटोटाइम" ऐसा करता है दिखाया गया है। व्याख्या करने के लिए क्या है? –

7

मेरे अन्य पदों में से एक से, एक unixtimestamp हो रही:

$unixTimestamp = time(); 

mysql datetime स्वरूप में कन्वर्ट:

$mysqlTimestamp = date("Y-m-d H:i:s", $unixTimestamp); 

कुछ mysql टाइमस्टैम्प हो रही है:

$mysqlTimestamp = '2013-01-10 12:13:37'; 

एक unixtimestamp करने के लिए इसे परिवर्तित:

$unixTimestamp = strtotime('2010-05-17 19:13:37'); 

... एक या समय की एक श्रेणी से तुलना, उपयोगकर्ता एक यथार्थवादी समय में प्रवेश किया है, तो देखने के लिए:

if($unixTimestamp > strtotime("1999-12-15") && $unixTimestamp < strtotime("2025-12-15")) 
{...} 

यूनिक्स टाइमस्टैम्प हैं सुरक्षित भी आप अगर एक यूआरएल पारित कर दिया चर मान्य है, (उदाहरण के लिए) की जाँच पिछले रेंज जांच से पहले जाँच करने के लिए निम्न कर सकते हैं:

if(ctype_digit($_GET["UpdateTimestamp"])) 
{...} 
1

थोड़ा संक्षिप्त हो सकता है ...

echo date("Y-m-d H:i:s", strtotime($mysqltime)); 
+0

लगभग मजाक की तरह :) – CoR

0

के बजाय strtotime आपको PHP के साथ DateTime का उपयोग करना चाहिए।

$dt = DateTime::createFromFormat('Y-m-d H:i:s', $mysqltime, new DateTimeZone('Europe/Berlin')); 
$unix_timestamp = $dt->getTimestamp(); 

$mysqltime प्रकार MySQL Datetime, ई की है: आप समय क्षेत्र इस तरह के संबंध में कर सकते हैं। जी। 2018-02-26 07:53:00

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