summaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
authorCorey Hulen <corey@hulen.com>2015-11-30 08:51:36 -0800
committerCorey Hulen <corey@hulen.com>2015-11-30 08:51:36 -0800
commit93f08717a8cf40b1e3be138ed9d5b4d76fcfadb9 (patch)
tree4b81b2c63329364cb391427b61a1ab7f2bd5969f /utils
parentce259ad7f1ce8a52b7fc5af7542a101acf71173e (diff)
parent7ac97273855e5e68d9e4b10e96d5466201fb8871 (diff)
downloadchat-93f08717a8cf40b1e3be138ed9d5b4d76fcfadb9.tar.gz
chat-93f08717a8cf40b1e3be138ed9d5b4d76fcfadb9.tar.bz2
chat-93f08717a8cf40b1e3be138ed9d5b4d76fcfadb9.zip
Merge pull request #1537 from florianorben/PLT-1035
PLT-1035: Remove last data point in graphs on #statistics page
Diffstat (limited to 'utils')
-rw-r--r--utils/time.go23
-rw-r--r--utils/time_test.go50
2 files changed, 73 insertions, 0 deletions
diff --git a/utils/time.go b/utils/time.go
new file mode 100644
index 000000000..7d5afdf8f
--- /dev/null
+++ b/utils/time.go
@@ -0,0 +1,23 @@
+package utils
+
+import (
+ "time"
+)
+
+func MillisFromTime(t time.Time) int64 {
+ return t.UnixNano() / int64(time.Millisecond)
+}
+
+func StartOfDay(t time.Time) time.Time {
+ year, month, day := t.Date()
+ return time.Date(year, month, day, 0, 0, 0, 0, t.Location())
+}
+
+func EndOfDay(t time.Time) time.Time {
+ year, month, day := t.Date()
+ return time.Date(year, month, day, 23, 59, 59, 999999999, t.Location())
+}
+
+func Yesterday() time.Time {
+ return time.Now().AddDate(0, 0, -1)
+}
diff --git a/utils/time_test.go b/utils/time_test.go
new file mode 100644
index 000000000..7d65046bf
--- /dev/null
+++ b/utils/time_test.go
@@ -0,0 +1,50 @@
+// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+package utils
+
+import (
+ "testing"
+ "time"
+)
+
+var format = "2006-01-02 15:04:05.000000000"
+
+func TestMillisFromTime(t *testing.T) {
+ input, _ := time.Parse(format, "2015-01-01 12:34:00.000000000")
+ actual := MillisFromTime(input)
+ expected := int64(1420115640000)
+
+ if actual != expected {
+ t.Fatalf("TestMillisFromTime failed, %v=%v", expected, actual)
+ }
+}
+
+func TestYesterday(t *testing.T) {
+ actual := Yesterday()
+ expected := time.Now().AddDate(0, 0, -1)
+
+ if actual.Year() != expected.Year() || actual.Day() != expected.Day() || actual.Month() != expected.Month() {
+ t.Fatalf("TestYesterday failed, %v=%v", expected, actual)
+ }
+}
+
+func TestStartOfDay(t *testing.T) {
+ input, _ := time.Parse(format, "2015-01-01 12:34:00.000000000")
+ actual := StartOfDay(input)
+ expected, _ := time.Parse(format, "2015-01-01 00:00:00.000000000")
+
+ if actual != expected {
+ t.Fatalf("TestStartOfDay failed, %v=%v", expected, actual)
+ }
+}
+
+func TestEndOfDay(t *testing.T) {
+ input, _ := time.Parse(format, "2015-01-01 12:34:00.000000000")
+ actual := EndOfDay(input)
+ expected, _ := time.Parse(format, "2015-01-01 23:59:59.999999999")
+
+ if actual != expected {
+ t.Fatalf("TestEndOfDay failed, %v=%v", expected, actual)
+ }
+}