Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menjana Rentetan Tarikh/Masa Relatif daripada Cap Waktu Unix dalam PHP?

Bagaimanakah Saya Boleh Menjana Rentetan Tarikh/Masa Relatif daripada Cap Waktu Unix dalam PHP?

DDD
Lepaskan: 2024-11-26 21:55:10
asal
756 orang telah melayarinya

How Can I Generate Relative Date/Time Strings from Unix Timestamps in PHP?

Menghasilkan Tarikh/Masa Relatif daripada Cap Masa dalam PHP

Pengenalan

Menentukan tarikh relatif /masa berdasarkan cap masa adalah tugas biasa dalam pengaturcaraan. Fungsi ini menjadi lebih kompleks apabila mempertimbangkan selang masa yang berbeza dan arah penukaran (lalu atau akan datang).

Jawapan

Fungsi di bawah menyediakan pendekatan menyeluruh untuk menukar Cap waktu Unix (diperolehi menggunakan fungsi masa()) kepada format tarikh/masa relatif, mengambil kira masa lalu dan masa hadapan. Ia menjana output seperti:


  • 2 minggu lalu

  • 1 jam 60 minit lalu

  • 15 minit dan 54 saat lalu

  • selepas 10 minit dan 15 saat

Fungsi ini menggunakan satu siri pernyataan bersyarat untuk menentukan perwakilan masa yang sesuai berdasarkan perbezaan antara masa semasa dan masa cap masa:


fungsi time2str($ts)
{

// Handle syntax variations
if(!ctype_digit($ts)) $ts = strtotime($ts);

// Calculate the difference between now and the timestamp
$diff = time() - $ts;

// Check for exact matches to simplify handling
if($diff == 0) return 'now';

// Handle past timestamps
if($diff > 0)
{
    // Calculate day difference
    $day_diff = floor($diff / 86400);

    // Format past time intervals
    switch(true)
    {
        case ($day_diff == 0):    return constructPastInterval($diff); // Hours, minutes, seconds
        case ($day_diff == 1):    return 'Yesterday';
        case ($day_diff < 7):    return $day_diff . ' days ago';
        case ($day_diff < 31):   return ceil($day_diff / 7) . ' weeks ago';
        case ($day_diff < 60):   return 'last month';
        default:               return date('F Y', $ts);
    }
}
// Handle future timestamps
else
{
    // Calculate absolute difference
    $diff = abs($diff);
    
    // Calculate day difference and format future time intervals based on logic similar to the past case.
}
Salin selepas log masuk

}

The Fungsi constructPastInterval() tidak ditunjukkan dalam respons ini tetapi mengendalikan pemformatan selang masa lalu (jam, minit, saat).

Fungsi ini menawarkan penyelesaian yang mantap dan serba boleh untuk menjana perwakilan tarikh/masa relatif daripada cap masa, menghapuskan keperluan untuk berbilang skrip atau pengekodan tersuai yang kompleks.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Rentetan Tarikh/Masa Relatif daripada Cap Waktu Unix dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan