2010-03-15 134 views
6

Trên trang web của chúng tôi, chúng tôi có rất nhiều thời gian bơi mà chúng tôi muốn chuyển đổi thành giây. tức là 1: 23: 33.03 hoặc 58: 22.43. Có một chức năng PHP có thể làm điều này? Một chức năng MySQL?để chuyển đổi thời gian thành số giây

Trả lời

-1

Strtotime là những gì bạn cần. Bạn nhận được một dấu thời gian Unix trong trường hợp này sẽ là số giây.

+0

Không quá nhiều tìm kiếm một thời gian trong ngày, tìm kiếm một chuyển đổi trong một thời gian bơi trong HH: MM: SS.XX hoặc MM: SS.XX đến tổng số giây – Brian

+0

Một lần nữa, bạn chỉ có thể sử dụng strtotime để chuyển đổi giữa các khoảng thời gian thành tổng số giây. – Sergi

8
function time2seconds($time='00:00:00') 
{ 
    list($hours, $mins, $secs) = explode(':', $time); 
    return ($hours * 3600) + ($mins * 60) + $secs; 
} 

Từ here.

MySQL cũng có TIME_TO_SEC()

+0

Tôi có lẽ sẽ không đặt tên như thế, nhưng đó là ý tưởng đúng. –

+0

Tại sao lại là downvote? – jasonbar

+1

@jasonbar: bạn đã đánh cắp câu trả lời của tôi – zerkms

-1

Tôi là một chút nhầm lẫn nhưng tôi nghĩ rằng bạn có ý nghĩa. 1 giờ, 23 phút và 23,03 giây.

điều này không khó thực hiện. Tôi đã thực hiện chức năng PHP này. Máy chủ php của tôi không muốn khởi động, vì vậy tôi không thể kiểm tra nó, nhưng tôi nghĩ nó sẽ hoạt động.

 
function ConvertTimeToSeconds($T) 
{ 
    $exp = explode(":",$T); 
    $c = count($exp); 
    $r = 0; 
    if ($c == 2) 
    { 
     $r = (((int)$exp[0]) * 60) + ((int)$exp[1]); 
    }else{ 
     $r = (((int)$exp[0]) * 3600) + (((int)$exp[1]) * 60) + ((int)$exp[2]); 
    } 

    return $r; 
} 

ConvertTimeToSeconds("1:23:33.03"); 
11

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_time-to-sec

mysql> SELECT TIME_TO_SEC('22:23:00'); 
    -> 80580 
mysql> SELECT TIME_TO_SEC('00:39:38'); 
    -> 2378 
+0

@zerkms - khoảng phân số giây? –

+0

không có gì. mysql không phân số theo kiểu dữ liệu thời gian/datetime: -S – zerkms

+0

Trên thực tế, MySQL sẽ cho phép bạn chỉ định micro giây trong các chữ cái ngày/thời gian được chuyển đến các hàm ngày/giờ khác nhau, và dưới dạng giá trị trả về từ một số hàm đó. Nó sẽ không lưu trữ chúng trong bất kỳ cột DATE, DATETIME hoặc TIMESTAMP nào. – Rob

0

vì vậy nếu mysql mà không phân số không giải pháp thích hợp - đây là một mỏ

$time = '1:23:33.03'; 

$parts = explode(':', $time); 

$seconds = 0; 

foreach ($parts as $i => $val) { 
    $seconds += $val * pow(60, 2 - $i); 
} 

echo $seconds; 
1

Sử dụng chương trình sau đây để chuyển đổi thời gian để giây trong php.

<?php 
function time_to_sec($time) { 
    $hours = substr($time, 0, -6); 
    $minutes = substr($time, -5, 2); 
    $seconds = substr($time, -2); 

    return $hours * 3600 + $minutes * 60 + $seconds; 
} 

$result=time_to_sec('12:25:59'); 
echo $result; 
?> 
1

$ current_time_in_seconds = "01: 21: 44.24";

list($hours, $minutes, $seconds) = explode(":", $current_time_in_seconds); 

$current_time_in_seconds=$hours*3600+$minutes*60+$seconds; 

sẽ nhận được từ

01: 21: 44,24

để

4904,24

+0

Bây giờ, tại sao tôi không nghĩ về điều đó ...? :-) –

+0

tận hưởng nó thật dễ dàng. –

Các vấn đề liên quan