Cara menggunakan mongodb date subtract

Pengertian MongoDB – database merupakan kumpulan data yang disimpan secara sistematis didalam komputer yang dapat diolah atau dimanipulasi menggunakan perangkat lunak (software) program atau aplikasi untuk menghasilkan informasi. MongoDB merupakan salah satu produk database NoSQL (Not only SQL) open source yang menggunakan struktur data JSON untuk menyimpan datanya.

MongoDB sangat populer di internet dengan slogannya “No database makes you more productive”. MongoDB sering dipakai untuk aplikasi berbasis Cloud, Grid Computing, dan Big data.

You might also like

Cara menggunakan mongodb date subtract

Apa itu jQuery? Pengertian, Fitur, dan Contohnya

January 27, 2023

Cara menggunakan mongodb date subtract

Apa itu PowerDesigner? Kenali Fitur-fiturnya Berikut ini

January 24, 2023

Apa itu MongoDB?

MongoDB adalah database terdistribusi dengan tujuan umum, berbasis dokumen, yang dibangun untuk pengembangan aplikasi modern dalam era cloud (awan). MongoDB merupakan salah satu jenis database NoSQL yang berbasis dokumen dengan format JSON. Itulah beberapa penjelasan tentang pengertian, cara kerja, dan kelebihan dari database MongoDB yang dapat caraguna share pada kesempatan kali ini. Jika ada yang ingin ditanyakan atau ada yang ingin disampaikan, silahkan komen pada kolom komentar dibawah, terimakasih.

Pada chapter ini kita akan belajar tentang pemanfaatan data bertipe date-time, method-method yang disediakan, dan juga format & parsing data string ke tipe time.Time dan sebaliknya.

Go menyediakan package time yang berisikan banyak sekali komponen yang bisa digunakan untuk keperluan pemanfaatan date-time. Salah satunya adalah time.Time, yang merupakan tipe untuk data tanggal dan waktu di Go.

Time di sini maksudnya adalah gabungan date dan time, bukan hanya waktu saja.

Tipe time.Time merupakan representasi untuk objek date-time. Ada 2 cara yang bisa dipilih untuk membuat data bertipe ini.

  1. Menjadikan informasi waktu sekarang sebagai objek time.Time, menggunakan time.Now().
  2. Atau, membuat objek baru bertipe time.Time dengan informasi ditentukan sendiri, menggunakan
    var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")
    
    if err != nil {
        fmt.Println("error", err.Error())
        return
    }
    
    fmt.Println(date)
    
    0.

Berikut merupakan contoh penggunannya.

Fungsi time.Now() mengembalikan objek time.Time dengan informasi adalah date-time tepat ketika statement tersebut dijalankan. Bisa dilihat pada saat di-print muncul informasi date-time sesuai dengan tanggal program tersebut dieksekusi.

Cara menggunakan mongodb date subtract

Fungsi

var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
0 digunakan untuk membuat objek time.Time baru yang informasi date-time-nya kita tentukan sendiri. Fungsi ini memiliki 8 buah parameter mandatory dengan skema bisa dilihat di kode berikut:

time.Date(tahun, bulan, tanggal, jam, menit, detik, nanodetik, timezone)

Objek cetakan fungsi time.Now(), informasi timezone-nya adalah relatif terhadap lokasi kita. Karena kebetulan penulis berlokasi di Jawa Timur, maka akan terdeteksi masuk dalam GMT+7 atau WIB. Berbeda dengan variabel

var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
6 yang lokasinya sudah kita tentukan secara eksplisit yaitu UTC.

Selain menggunakan

var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
7 untuk penentuan lokasi, tersedia juga
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
8 yang nilainya adalah relatif terhadap date-time lokal kita.

Tipe data time.Time merupakan struct, memiliki beberapa method yang bisa dipakai.

Kode di atas adalah contoh penggunaan beberapa method milik objek bertipe time.Time. Method string1 mengembalikan informasi tahun, dan string2 mengembalikan informasi angka bulan.

Selain kedua method di atas, ada banyak lagi yang bisa dimanfaatkan. Tabel berikut merupakan list method yang berhubungan dengan date, time, dan location yang dimiliki tipe time.Time.

MethodReturn TypePenjelasanstring4string5Tahunstring6string5Hari ke-? di mulai awal tahunstring8string5Bulantime.Time0stringNama hari. Bisa menggunakan time.Time2 untuk mengambil bentuk string-nyatime.Time3(string5, string5)Tahun dan minggu ke-? mulai awal tahuntime.Time6string5Tanggaltime.Time8string5Jamtime0string5Menittime2string5Detiktime4string5Nano detiktime6time.TimeDate-time dalam timezone lokaltime8time9Mengambil informasi lokasi, apakah local atau utc. Bisa menggunakan time.Time0 untuk mengambil bentuk string-nyatime.Time1(string, string5)Mengembalikan informasi timezone offset dalam string dan numerik. Sebagai contoh time.Time4time.Time5time.Time6Deteksi apakah nilai object time.Time7 adalah time.Time8. Jika iya maka bernilai time.Time9time.Time0time.TimeDate-time dalam timezone time.Time2time.Time3time.Time4Date-time dalam format unix timetime.Time5time.Time4Date-time dalam format unix time. Infomasi nano detik juga dimasukkantime.Time7stringDate-time dalam string

Data string bisa dikonversi menjadi time.Time dengan memanfaatkan time.Time1. Fungsi ini membutuhkan 2 parameter:

  • Parameter ke-1 adalah layout format dari data waktu yang akan diparsing.
  • Parameter ke-2 adalah data string yang ingin diparsing.

Contoh penerapannya bisa dilihat di kode berikut.

Cara menggunakan mongodb date subtract

Layout format date-time di Go berbeda dibanding bahasa lain. Umumnya layout format yang digunakan adalah seperti time.Time2, di Go tidak.

Go memiliki standar layout format yang cukup unik, contohnya seperti pada kode di atas time.Time3. Go menggunakan time.Time4 untuk parsing tahun, bukan time.Time5; time.Time6 untuk parsing bulan; time.Time7 untuk parsing hari; dan seterusnya. Detailnya bisa dilihat di tabel berikut.

Layout FormatPenjelasanContoh Datatime.Time4Tahun 4 digittime.Time9time.Now()0Tahun 3 digittime.Now()1time.Now()2Tahun 2 digittime.Now()3time.Time6Bulan 2 digittime.Now()5time.Now()6Bulan 1 digit jika di bawah bulan 10, selainnya 2 digittime.Now()7, time.Now()8time.Now()9Nama bulan dalam bahasa inggristime.Time0, time.Time1time.Time2Nama bulan dalam bahasa inggris, 3 huruftime.Time3, time.Time4time.Time7Tanggal 2 digittime.Time7time.Time7Tanggal 1 digit jika di bawah bulan 10, selainnya 2 digittime.Time8, time.Time9
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
00Nama hari dalam bahasa inggris
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
01, 
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
02
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
03Nama hari dalam bahasa inggris, 3 huruf
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
04, 
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
05time.Now()3Jam dengan format 24 jam
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
07
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
08Jam dengan format 12 jam 2 digittime.Now()5, 
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
10
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
11Jam dengan format 12 jam 1 digit jika di bawah jam 11, selainnya 2 digittime.Now()7, 
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
10
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
14AM/PM, biasa digunakan dengan format jam 12 jam
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
14, 
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
16
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
17Menit 2 digit
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
18
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
19Menit 1 digit jika di bawah menit 10, selainnya 2 digittime.Time8, 
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
21time.Now()5Detik 2 digittime.Now()2time.Now()7Detik 1 digit jika di bawah detik 10, selainnya 2 digit
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
25, 
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
26
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
27Nano detik
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
28
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
29Lokasi timezonetime.Time2, 
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
31, 
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
32
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
33Offset timezone
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
34, 
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
35, 
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
36

Go juga menyediakan beberapa predefined layout format umum yang bisa dimanfaatkan. Jadi tidak perlu menuliskan kombinasi komponen-komponen layout format.

Salah satu predefined layout yang bisa digunakan adalah

var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
37, ekuivalen dengan layout format
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
38. Berikut adalah contoh penerapannya.

Ada beberapa layout format lain yang tersedia, silakan lihat tabel berikut.

Predefined Layout FormatLayout Format
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
39Mon Jan _2 15:04:05 2006
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
40Mon Jan _2 15:04:05 MST 2006
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
41Mon Jan 02 15:04:05 -0700 2006
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
3702 Jan 06 15:04 MST
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
4302 Jan 06 15:04 -0700
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
44Monday, 02-Jan-06 15:04:05 MST
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
45Mon, 02 Jan 2006 15:04:05 MST
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
46Mon, 02 Jan 2006 15:04:05 -0700
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
472006-01-02T15:04:05Z07:00
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
482006-01-02T15:04:05.999999999Z07:00
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
493:04PM
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
50Jan _2 15:04:05
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
51Jan _2 15:04:05.000
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
52Jan _2 15:04:05.000000
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
53Jan _2 15:04:05.000000000

Setelah sebelumnya kita belajar tentang cara konversi data dengan tipe string ke time.Time. Kali ini kita akan belajar kebalikannya, konversi time.Time ke string.

Method

var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
58 milik tipe time.Time digunakan untuk membentuk output string sesuai dengan layout format yang diinginkan. Contoh bisa dilihat pada kode berikut.

Variabel

var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
61 di atas berisikan hasil parsing data dengan format
var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
37. Data tersebut kemudian diformat sebagai string 2 kali dengan layout format berbeda.

Cara menggunakan mongodb date subtract

A.40.6. Handle Error Parsing time.Time

Ketika parsing string ke time.Time, sangat memungkinkan bisa terjadi error karena struktur data yang akan di-parse tidak sesuai layout format yang digunakan. Error tidaknya parsing bisa diketahui lewat nilai kembalian ke-2 fungsi

var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
66. Berikut adalah contoh penerapannya.

var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)

Kode di atas menghasilkan error karena format tidak sesuai dengan skema data yang akan diparsing. Layout format yang seharusnya digunakan adalah

var date, err = time.Parse("06 Jan 15", "02 Sep 15 08:00 WIB")

if err != nil {
    fmt.Println("error", err.Error())
    return
}

fmt.Println(date)
67.