Adakah yang tahu bagaimana saya bisa mengambil datetime
nilai tipe data MySQL , seperti YYYY-MM-DD HH:MM:SS
dan menguraikannya atau mengonversinya untuk berfungsi dalam Date()
fungsi JavaScript , misalnya: - Date ('YYYY, MM, DD, HH, MM, SS);
Terima kasih!
Jawaban:
Beberapa jawaban yang diberikan di sini terlalu rumit atau tidak akan berfungsi (setidaknya, tidak di semua browser). Jika Anda mengambil langkah mundur, Anda dapat melihat bahwa stempel waktu MySQL memiliki setiap komponen waktu dalam urutan yang sama dengan argumen yang diperlukan oleh
Date()
konstruktor.Semua yang dibutuhkan adalah pemisahan yang sangat sederhana pada string:
Peringatan yang adil: ini mengasumsikan bahwa server MySQL Anda mengeluarkan tanggal UTC (yang merupakan default, dan direkomendasikan jika tidak ada komponen zona waktu dari string).
sumber
var d = new Date("2010-06-09 13:12:01");
. Meskipun menarik, Chrome tidak memiliki masalah dengannya.new Date(Date.UTC(...))
lebih baik, tetapi itu mengasumsikan bahwa mysql menggunakan utc ... baik cara ini perlu dipertimbangkan sebelum ini dapat dianggap sebagai jawaban yang benar.Untuk menambah jawaban Andy E yang luar biasa, fungsi dari penggunaan umum dapat berupa:
Dengan cara ini diberikan tanggal / waktu MySQL dalam bentuk
"YYYY-MM-DD HH:MM:SS"
atau bahkan bentuk pendek (hanya tanggal)"YYYY-MM-DD"
yang dapat Anda lakukan:sumber
new Date(Date.UTC(...))
bijak lain hingga 24 jam ...Saya pikir saya mungkin telah menemukan cara yang lebih sederhana, yang tidak seorang pun menyebutkan.
Kolom MySQL DATETIME dapat dikonversi ke cap waktu unix melalui:
Kita dapat membuat objek Tanggal JavaScript baru dengan menggunakan konstruktor yang memerlukan milidetik sejak zaman. Fungsi unix_timestamp mengembalikan detik sejak zaman, jadi kita perlu mengalikan 1000:
Nilai yang dihasilkan dapat digunakan secara langsung untuk instantiate objek Javascript Date yang benar:
Semoga ini membantu.
sumber
Satu liner untuk browser modern (IE10 +):
Dan hanya untuk bersenang-senang, ini adalah one-liner yang akan bekerja di browser yang lebih lama (sekarang diperbaiki):
sumber
Versi terbaru JavaScript akan membaca tanggal berformat ISO8601, jadi yang harus Anda lakukan adalah mengubah spasi menjadi 'T', melakukan sesuatu seperti salah satu dari yang berikut:
sumber
Untuk menambahkan lebih jauh lagi ke solusi Marco. Saya membuat prototipe langsung ke objek String.
Dengan cara ini Anda bisa langsung ke:
sumber
Ada cara yang lebih sederhana, string cap waktu sql:
Format terdekat dengan cap waktu untuk Tanggal () yang akan diterima adalah sebagai berikut, jadi ganti ruang kosong untuk "T":
Lalu, buat objek tanggal:
hasilnya akan menjadi objek tanggal:
sumber
Dari Jawaban Andy , Untuk AngularJS - Filter
sumber
sumber
Pertama, Anda dapat memberikan objek Tanggal JavaScript (kelas) metode baru 'dariYMD ()' untuk mengubah format tanggal YMD MySQL ke dalam format JavaScript dengan memecah format YMD menjadi komponen dan menggunakan komponen tanggal ini:
Sekarang Anda dapat mendefinisikan objek Anda sendiri (fungsi di dunia JavaScript):
dan sekarang Anda cukup membuat tanggal dari format tanggal MySQL;
sumber
Anda dapat menggunakan cap waktu unix untuk mengarahkan:
SELECT UNIX_TIMESTAMP(date) AS epoch_time FROM table;
Kemudian masukkan epoch_time ke dalam JavaScript, dan ini adalah masalah sederhana:
var myDate = new Date(epoch_time * 1000);
Penggandaan dengan 1000 adalah karena JavaScript membutuhkan milidetik, dan UNIX_TIMESTAMP memberikan detik.
sumber
Pencarian cepat di Google menyediakan ini:
Sumber: http://snippets.dzone.com/posts/show/4132
sumber
Kenapa tidak melakukan ini:
sumber