Ejemplo n.º 1
0
function site_get_time($mysql_datetime, $display_type = 'relative', $format = 'Y年n月j日 H:i', $display_both_length = '+7 day', $is_normal_timestamp = false)
{
    $accept_display_types = array('relative', 'normal', 'both');
    if (!in_array($display_type, $accept_display_types)) {
        throw new InvalidArgumentException('Second parameter is invalid.');
    }
    $time = $mysql_datetime;
    if (!$is_normal_timestamp) {
        $time = strtotime($mysql_datetime);
    }
    $normal_time = date($format, $time);
    if ($display_type == 'normal') {
        return $normal_time;
    }
    $past_time = sprintf('<span data-livestamp="%s"></span>', date(DATE_ISO8601, $time));
    $display = '';
    if ($display_type == 'both' && (is_null($display_both_length) || !is_null($display_both_length) && time() < strtotime($normal_time . ' ' . $display_both_length))) {
        $display = sprintf('%s (%s)', $normal_time, $past_time);
    } else {
        if ($time < strtotime('-1 day')) {
            $display = $normal_time;
        } elseif ($time >= strtotime('-1 day') && $time < strtotime('-1 hour')) {
            $past_hours = Util_toolkit::get_past_time($time);
            $display = sprintf('約%d時間前', $past_hours);
        } else {
            $display = $past_time;
        }
    }
    return $display;
}