2012-05-03 15 views
6

मैं जावा टाइमस्टैम्प को इस 1335997853142 जैसे किसी प्रारूप में कैसे परिवर्तित कर सकता हूं? 133599785314202 May 2012 22:30:53 होना चाहिए।जावा टाइमस्टैम्प को php timestamp में कैसे परिवर्तित करें?

लेकिन मैं जो भी मैं त्रुटियों मिल या PHP का कहना है 1970-01-01 01:00:00 या 2038-01-19 04:14:07

PLS मदद की कोशिश !!! मैं एक soloution के लिए 1.5h से अधिक के लिए खोज रहा हूँ!

+1

'java.util.Calendar' का उपयोग करें। इस महान प्रश्न के लिए आपको यही सब कुछ मिलता है। – Torious

+1

जावा टाइमस्टैम्प लिनक्स समय से मिलीसेकंड है, php linux समय से सेकंड है। PHP समय प्राप्त करने के लिए 1000 से जावा समय विभाजित करें। – Jordonias

+0

@ टूरियस: जावा का उपयोग नहीं करना चाहते हैं - मैं 1220 मानों को xml फ़ाइल से php से mysql – user1373728

उत्तर

6

यह एक जावा टाइमस्टैम्प, यह मिलीसेकेंड है के बाद से epoch (1970-01-01 00:00:00 जीएमटी)

कौन सा php supports too सेकंड में छोड़कर तो निम्नलिखित php में काम करना चाहिए:

date('choose your format', javaMilliseconds/1000); 
+0

में परिवर्तित कर रहा हूं क्योंकि मार्क रीड भी date_default_timezone_set ("UTC") कहता है; – pstanton

0

यह microtime में समय स्टांप है

$time = date("whatever you need", $javatime/1000); 
+0

मैंने इसका इस्तेमाल किया: दिनांक ('वाई-एम-डी एच: आई: एस', $ मूल्य ['तिथि']/1000); // 1 9 70-01-25 21:31:23 यह: दिनांक ('वाईएमडी एच: आई: एस', (int) $ मूल्य ['date']/1000) // 1970-01-25 21:31 : 23 यह: दिनांक ('यू = वाईएमडी एच: आई: एस', (int) $ मान ['date']) // 2038-01-19 04:14:07 यह: दिनांक ('यू = वाईएमडी एच: i: s ', (int) $ मान [' date ']) // चेतावनी: दिनांक() उम्मीद है कि पैरामीटर 2 लंबे समय तक wtf गलत है?! – user1373728

1

जावा आपको मिलीसेकंड में टाइमस्टैम्प देता है। पीएचपी यूनिक्स सेकंड का उपयोग करता है, तो विभाजन 1000 से:

print(date("r", 1335997853142/1000) 
1

टाइमस्टैम्प आप मिलीसेकेंड में है जब यह सेकंड

$java_time = 1335997853142; 
$php_time = $java_time/1000; 
$today = date("d M Y G:i:s", $php_time); 

आउटपुट

02 May 2012 22:30:53 
+0

यह सरणी में सभी मानों के लिए देता है: 25 जनवरी 1 9 20 20:31:23 – user1373728

+0

मुझे कुछ अर्धविराम याद आ रहे थे, अब – Jordonias

+0

तय हैं क्या आप वाकई एक्सएमएल से प्रविष्टियों को पुनर्प्राप्त कर रहे हैं? – Jordonias

7

पीएचपी timestamps सेकंड में होना चाहिए, मिलीसेकंड नहीं।

echo gmdate("d M Y H:i:s",1335997853); 

यह 02 May 2012 22:30:53 आउटपुट करता है।

+0

अरे यह !! ठीक है, अब काम करता है - आपके सभी soloutions के साथ! धन्यवाद!! समस्या थी: स्ट्रिंग में रिक्त स्थान हैं (पता नहीं क्यों!)। एक ट्रिम() सब कुछ काम करने के बाद। क्षमा करें दोस्तों लेकिन सभी को धन्यवाद! – user1373728

1

तारीख/समय: अप्रैल/08/2014 12:17:42 यूटीसी

जावा टाइमस्टैम्प: 1396959462222

पीएचपी टाइमस्टैम्प: १३९६९५९४६२

1000 से डिवाइडिंग नहीं देता है बिल्कुल सही जवाब क्योंकि यह एक डबल या फ्लोट वैल्यू देगा, यानी 13 9 6 9 5 9 62.222 जो हम नहीं चाहते हैं। हम intval का उपयोग कर() द्वारा परिवर्तित करने के लिए पीएचपी टाइमस्टैम्प जावा टाइमस्टैम्प होगा 1396959462. तो सही तरीका की तरह एक पूर्णांक यहाँ की जरूरत है: एक असली उदाहरण में

$php_timestamp = intval($java_timestamp/1000); 

, मेरे Android क्षुधा में से एक में, जहां मैं करने के लिए जावा टाइमस्टैम्प भेज एक PHP सर्वर, जैसा कि ऊपर बताया गया है, मैं इसे करता हूं। इसके अलावा, अच्छा सुरक्षा अभ्यास के लिए, मैं एक preg_replace() अगर किसी को इस क्षेत्र में हैक कोड जोड़ा सुनिश्चित करने के लिए जोड़ने के लिए, इसे हटा दिया जाता है:

$php_timestamp = intval(preg_replace('/[^0-9]/', '', $java_timestamp)/1000); 
1

तारीख पूर्णांक प्रारूप में समय स्टांप की जरूरत है। तो मुझे लगता है कि यू को 3 अंतिम नंबर हटा देना चाहिए। प्रभाग का उपयोग न करें क्योंकि यह फ्लोट नंबर लौटाएगा।

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