2011-07-13 43 views
16

Làm cách nào để xoá phần thời gian của dấu thời gian?Xóa phần thời gian của dấu thời gian

Ví dụ: biến 1310571061 thành 1310565600 là dấu thời gian ngày đơn giản.

+0

ngày đơn giản trong timestamp là gì? Bạn có nghĩa là ngày + '00: 00: 00'? – Shef

+0

@shef, vâng, tôi có nghĩa là 'Y-M-D 00: 00: 00'. Không có lần nào được tính vào dấu thời gian. –

+0

Đã cho bạn câu trả lời. – Shef

Trả lời

24
strtotime(date("Y-m-d", 1310571061)); 

Điều đó sẽ làm điều đó cho bạn.

+0

Cảm ơn. nhưng điều này sẽ chỉ hoạt động trong 24 giờ. –

+1

@David, ý của bạn là gì? – Brad

+0

làm thế nào về việc thay đổi nó thành: 'strtotime (date (" ymd ", time())' sau đó? –

1

Bạn có thể làm:

$date = strotime(date("y/m/d", $timestamp)); 
4

Hãy thử:

<?php 
$ts = '1310571061'; 

echo strtotime(date('Y-m-d 00:00:00', $ts)); 
?> 
+0

''Y-m-d'' là thông thường hơn –

+0

@Yanick Rochon: Đã cập nhật, điều đó sẽ thỏa mãn! :) – Shef

24

Trong trường hợp bạn muốn có một giải pháp toán học:

$time=1310571061; 
echo floor($time/86400)*86400; 

Có 86.400 giây trong 24 giờ (đó là chiều dài của điển hình là ngày, nhưng không phải tất cả ... xem DST). Vì dấu thời gian của chúng tôi ở dạng UTC, đây không phải là vấn đề. Bạn có thể chia cho số giây trong một ngày, giảm số dư còn lại và nhân lại.

+0

Tuyệt. Tôi đã thử '$ time - ($ time% 86400)' trước khi đặt câu hỏi cho kết quả không chính xác. Bất kỳ ý tưởng tại sao? –

+0

Btw, tôi giả sử 'thời gian $/86400' là một lỗi đánh máy. đúng? –

+0

@David, hoạt động tốt cho tôi. Có lẽ đúc $ thời gian để nổi đầu tiên có thể giúp đỡ? – Brad

6

Sử dụng một đối tượng DateTime có thể hữu ích, và cũng có thể làm cho mã dễ đọc hơn ...

$dt = new DateTime(); 
$dt->setTimestamp(1310571061); 
echo $dt->format('Y-m-d, H:i:s') . "\r\n"; 
$dt->setTime(0, 0, 0); 
echo $dt->format('Y-m-d, H:i:s'); 

quả ...

2011-07-14, 03:31: 01

2011/07/14, 00:00:00

Sự lựa chọn của việc có nên sử dụng timestamps sống hoặc Các đối tượng DateTime sẽ phụ thuộc rất nhiều vào các nhu cầu thực hiện, nhưng nói chung các đối tượng DateTime sẽ đi một chặng đường dài hướng tới việc giảm sự nhầm lẫn và lỗi có thể đặc biệt xung quanh vấn đề Timezone và các vấn đề Thời gian tiết kiệm ánh sáng ban ngày.

3
$pubdate='2003-02-19T00:00:00.000-05:00'; 

    $da = strtotime($pubdate); 
    echo $dat = date('Y-m-d', $da); 

Câu trả lời là như sau: "2003/02/19"

cảm ơn

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