2010-08-20 12 views
32
  1. मेरा आउटपुट 2 9 0.52262423327 सेकेंड के प्रारूप में है। मैं इसे कैसे बदल सकता हूं 00:04:51?आउटपुट सेकंड में है। एचएच में परिवर्तित: मिमी: एसएस प्रारूप में php

  2. वही आउटपुट मैं सेकंड में और एचएच में दिखाना चाहता हूं: एमएम: एसएस प्रारूप, इसलिए यदि यह सेकंड है, तो मैं केवल 2 9 0.52 सेकेंड दिखाना चाहता हूं। (दशमलव बिंदु के बाद केवल दो पूर्णांक)? मैं यह कैसे कर सकता हूँ?

मैं php में काम कर रहा हूं और आउटपुट $time चर में मौजूद है। $time को $newtime में एचएच के साथ बदलना चाहते हैं: एमएम: एसएस और $newsec 2 9 0.52 के रूप में।

धन्यवाद :)

+0

क्या आप एक अवधि या समय टिकट ढूंढ रहे हैं? –

+0

** का डुप्लिकेट [सेकंड, घंटों, मिनटों और सेकंड में सेकेंड कनवर्ट करें] (http://stackoverflow.com/a/19680778/67332) ** या ** [सेकंड में सेकंड कनवर्ट करें: मिनट: दूसरा] (http: //stackoverflow.com/a/20870843/67332)** –

+0

संभावित प्रतिलिपि [सेकंड में कनवर्ट करें: मिनट: दूसरा] (http://stackoverflow.com/questions/3172332/convert-seconds-to-hourminutesecond) – PeerBr

उत्तर

70

1)

function foo($seconds) { 
    $t = round($seconds); 
    return sprintf('%02d:%02d:%02d', ($t/3600),($t/60%60), $t%60); 
} 

echo foo('290.52262423327'), "\n"; 
echo foo('9290.52262423327'), "\n"; 
echo foo(86400+120+6), "\n"; 

प्रिंट

00:04:51 
02:34:51 
24:02:06 

2)

echo round($time, 2); 
+0

के लिए धन्यवाद मैं कुछ चरम असफल डिवीजनों में भाग गया और उस पंक्ति में आपने जो किया है उसे प्राप्त करने की कोशिश कर रहे कार्यों को घटाना:) 'sprintf ('% 02 डी:% 02 डी:% 02 डी', ($ टी/3600), ($ टी/60% 60), $ टी% 60)' – adrianTNT

+2

आप आदमी हैं ... शानदार एन सबसे छोटा समाधान। ।धन्यवाद –

-1
echo date('H:i:s',$time); 

echo number_format($time,2); 
+0

समय मूल्यों के लिए काम नहीं करेगा> 12 घंटे, हालांकि –

+0

समय के लिए काम नहीं करेगा> 24 घंटे –

0

न्यूमरो संयुक्त राष्ट्र संघ ... (इस सुविधा का उपयोग) http://www.ckorp.net/sec2time.php

न्यूमरो जोड़ी ... echo round(290.52262423327,2);

2

इस प्रयास करें:

$time = 290.52262423327; 
echo date("h:i:s", mktime(0,0, round($time) % (24*3600))); 
3
$iSeconds = 290.52262423327; 
print date('H:i:s', mktime(0, 0, $iSeconds)); 
+0

धन्यवाद, यह काम किया। –

+0

मूल्यों के लिए काम नहीं करेगा> 24 घंटे, हालांकि –

+0

हाँ यह काम नहीं करता है ... टिप-ऑफ pekka –

0

1)

$newtime = sprintf("%02d:%02d:%02d", $time/3600, $time/60 % 60, $time % 60); 

2)

$newsec = sprintf("%.2f", $time); 
6

प्रयास करें यह एक

echo gmdate("H:i:s", 90); 
+0

यह समाधान किसी दिन में सेकंड की संख्या से कम किसी भी मान के लिए काम करेगा, लेकिन मूल्यों के लिए 00:00:00 पर रीसेट होगा ≥ 86400. – dctucker

+0

मूल्यों के लिए इसे कैसे काम करना है इस बारे में कोई विचार> 86400 ?? –

0

मैं अगर यह सबसे कारगर तरीका है नहीं जानता, लेकिन अगर आप भी दिन प्रदर्शित करने के लिए की जरूरत है, इस काम करता है:

function foo($seconds) { 
$t = round($seconds); 
return sprintf('%02d %02d:%02d:%02d', ($t/86400%24), ($t/3600) -(($t/86400%24)*24),($t/60%60), $t%60); 
} 
1

प्रयास करें इस :)

private function conversionTempsEnHms($tempsEnSecondes) 
    { 
     $h = floor($tempsEnSecondes/3600); 
     $reste_secondes = $tempsEnSecondes - $h * 3600; 

     $m = floor($reste_secondes/60); 
     $reste_secondes = $reste_secondes - $m * 60; 

     $s = round($reste_secondes, 3); 
     $s = number_format($s, 3, '.', ''); 

     $h = str_pad($h, 2, '0', STR_PAD_LEFT); 
     $m = str_pad($m, 2, '0', STR_PAD_LEFT); 
     $s = str_pad($s, 6, '0', STR_PAD_LEFT); 

     $temps = $h . ":" . $m . ":" . $s; 

     return $temps; 
    } 
संबंधित मुद्दे

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