...

Source file src/golang.conradwood.net/go-easyops/utils/time.go

Documentation: golang.conradwood.net/go-easyops/utils

     1  package utils
     2  
     3  import (
     4  	"fmt"
     5  	"time"
     6  )
     7  
     8  // format a timestring
     9  func TimeString(t time.Time) string {
    10  	return t.Format("2006-01-02 15:04:05")
    11  }
    12  
    13  // format a timestamp
    14  func TimestampString(timestamp uint32) string {
    15  	if timestamp == 0 {
    16  		return "unset"
    17  	}
    18  	t := time.Unix(int64(timestamp), 0)
    19  	return TimeString(t)
    20  }
    21  
    22  // format a timestamp as 'age'
    23  func TimestampAgeString(timestamp uint32) string {
    24  	if timestamp == 0 {
    25  		return "not set"
    26  	}
    27  	secs_age := uint32(time.Now().Unix()) - timestamp
    28  	if secs_age == 0 {
    29  		return "now"
    30  	}
    31  	minutes := uint32(0)
    32  	hours := uint32(0)
    33  	if secs_age > 60*60 {
    34  		hours = secs_age / 60 / 60
    35  		secs_age = secs_age - hours*60*60
    36  	}
    37  
    38  	secs := secs_age
    39  	if secs_age > 60 {
    40  		minutes = uint32(secs_age / 60)
    41  		secs = secs_age - minutes*60
    42  	}
    43  	var ts []string
    44  	if hours != 0 {
    45  		ts = append(ts, fmt.Sprintf("%dh", hours))
    46  	}
    47  	if minutes != 0 {
    48  		ts = append(ts, fmt.Sprintf("%dm", minutes))
    49  	}
    50  	if secs != 0 {
    51  		ts = append(ts, fmt.Sprintf("%ds", secs))
    52  	}
    53  	deli := ""
    54  	res := ""
    55  	for _, s := range ts {
    56  		res = res + deli + s
    57  		deli = " "
    58  	}
    59  	res = res + " ago"
    60  	return res
    61  }
    62  

View as plain text