Menggunakan NodeJS, saya ingin memformat Date
ke dalam format string berikut:
var ts_hms = new Date(UTC);
ts_hms.format("%Y-%m-%d %H:%M:%S");
Bagaimana aku melakukan itu?
Menggunakan NodeJS, saya ingin memformat Date
ke dalam format string berikut:
var ts_hms = new Date(UTC);
ts_hms.format("%Y-%m-%d %H:%M:%S");
Bagaimana aku melakukan itu?
Jawaban:
Jika Anda menggunakan Node.js, Anda pasti memiliki EcmaScript 5, dan Date memiliki toISOString
metode. Anda meminta sedikit modifikasi ISO8601:
new Date().toISOString()
> '2012-11-04T14:51:06.157Z'
Jadi hentikan beberapa hal, dan Anda sudah siap:
new Date().toISOString().
replace(/T/, ' '). // replace T with a space
replace(/\..+/, '') // delete the dot and everything after
> '2012-11-04 14:55:45'
Atau, dalam satu baris: new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '')
ISO8601 harus UTC (juga ditunjukkan oleh tanda Z pada hasil pertama), sehingga Anda mendapatkan UTC secara default (selalu merupakan hal yang baik).
Object has no method 'toISOString'
,, Anda melewatkannew
new Date().toISOString().replace('T', ' ').substr(0, 19)
berfungsi dengan baik.
UPDATE 2017-03-29: Menambahkan date-fns, beberapa catatan tentang Moment dan Datejs
UPDATE 2016-09-14: Menambahkan SugarJS yang tampaknya memiliki beberapa fungsi tanggal / waktu yang sangat baik.
OK, karena tidak ada yang benar-benar memberikan jawaban yang sebenarnya, ini milik saya.
Perpustakaan tentu saja merupakan cara terbaik untuk menangani tanggal dan waktu dengan cara standar. Ada banyak kasus tepi dalam perhitungan tanggal / waktu sehingga berguna untuk dapat menyerahkan pengembangan ke perpustakaan.
Berikut adalah daftar pustaka pemformatan waktu Node utama yang kompatibel:
Ada juga pustaka non-Node:
Ada perpustakaan untuk konversi:
npm install dateformat
Kemudian tulis persyaratan Anda:
var dateFormat = require('dateformat');
Kemudian ikat nilainya:
var day=dateFormat(new Date(), "yyyy-mm-dd h:MM:ss");
lihat format tanggal
result.request_date
?
Saya tidak menentang perpustakaan secara umum. Dalam hal ini perpustakaan tujuan umum tampaknya berlebihan, kecuali bagian lain dari proses aplikasi tanggal berat.
Menulis fungsi utilitas kecil seperti ini juga merupakan latihan yang berguna bagi programmer pemula maupun yang sudah berpengalaman dan dapat menjadi pengalaman belajar bagi para pemula di antara kita.
function dateFormat (date, fstr, utc) {
utc = utc ? 'getUTC' : 'get';
return fstr.replace (/%[YmdHMS]/g, function (m) {
switch (m) {
case '%Y': return date[utc + 'FullYear'] (); // no leading zeros required
case '%m': m = 1 + date[utc + 'Month'] (); break;
case '%d': m = date[utc + 'Date'] (); break;
case '%H': m = date[utc + 'Hours'] (); break;
case '%M': m = date[utc + 'Minutes'] (); break;
case '%S': m = date[utc + 'Seconds'] (); break;
default: return m.slice (1); // unknown code, remove %
}
// add leading zero if required
return ('0' + m).slice (-2);
});
}
/* dateFormat (new Date (), "%Y-%m-%d %H:%M:%S", true) returns
"2012-05-18 05:37:21" */
Cara mudah dibaca dan dapat disesuaikan untuk mendapatkan cap waktu dalam format yang Anda inginkan, tanpa menggunakan perpustakaan apa pun:
function timestamp(){
function pad(n) {return n<10 ? "0"+n : n}
d=new Date()
dash="-"
colon=":"
return d.getFullYear()+dash+
pad(d.getMonth()+1)+dash+
pad(d.getDate())+" "+
pad(d.getHours())+colon+
pad(d.getMinutes())+colon+
pad(d.getSeconds())
}
(Jika Anda memerlukan waktu dalam format UTC, maka ubah saja pemanggilan fungsi. Misalnya "getMonth" menjadi "getUTCMonth")
Perpustakaan javascript sugar.js ( http://sugarjs.com/ ) memiliki fungsi untuk memformat tanggal
Contoh:
Date.create().format('{dd}/{MM}/{yyyy} {hh}:{mm}:{ss}.{fff}')
Gunakan metode yang disediakan dalam objek Tanggal sebagai berikut:
var ts_hms = new Date();
console.log(
ts_hms.getFullYear() + '-' +
("0" + (ts_hms.getMonth() + 1)).slice(-2) + '-' +
("0" + (ts_hms.getDate())).slice(-2) + ' ' +
("0" + ts_hms.getHours()).slice(-2) + ':' +
("0" + ts_hms.getMinutes()).slice(-2) + ':' +
("0" + ts_hms.getSeconds()).slice(-2));
Ini terlihat sangat kotor, tetapi harus bekerja dengan baik dengan metode inti JavaScript
Saya menggunakan dateformat di Nodejs dan angularjs, begitu baik
Install
$ npm install dateformat
$ dateformat --help
demo
var dateFormat = require('dateformat');
var now = new Date();
// Basic usage
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");
// Saturday, June 9th, 2007, 5:46:21 PM
// You can use one of several named masks
dateFormat(now, "isoDateTime");
// 2007-06-09T17:46:21
// ...Or add your own
dateFormat.masks.hammerTime = 'HH:MM! "Can\'t touch this!"';
dateFormat(now, "hammerTime");
// 17:46! Can't touch this!
// You can also provide the date as a string
dateFormat("Jun 9 2007", "fullDate");
// Saturday, June 9, 2007
...
new Date(2015,1,3,15,30).toLocaleString()
//=> 2015-02-03 15:30:00
3.2.2015, 15:30:00
Alternatif # 6233 ....
Tambahkan offset UTC ke waktu lokal lalu konversikan ke format yang diinginkan dengan toLocaleDateString()
metode Date
objek:
// Using the current date/time
let now_local = new Date();
let now_utc = new Date();
// Adding the UTC offset to create the UTC date/time
now_utc.setMinutes(now_utc.getMinutes() + now_utc.getTimezoneOffset())
// Specify the format you want
let date_format = {};
date_format.year = 'numeric';
date_format.month = 'numeric';
date_format.day = '2-digit';
date_format.hour = 'numeric';
date_format.minute = 'numeric';
date_format.second = 'numeric';
// Printing the date/time in UTC then local format
console.log('Date in UTC: ', now_utc.toLocaleDateString('us-EN', date_format));
console.log('Date in LOC: ', now_local.toLocaleDateString('us-EN', date_format));
Saya membuat objek tanggal default ke waktu lokal. Saya menambahkan UTC off-set untuk itu. Saya membuat objek format tanggal. Saya menampilkan tanggal / waktu UTC dalam format yang diinginkan:
Gunakan x-date
modul yang merupakan salah satu sub-modul perpustakaan x-class ;
require('x-date') ;
//---
new Date().format('yyyy-mm-dd HH:MM:ss')
//'2016-07-17 18:12:37'
new Date().format('ddd , yyyy-mm-dd HH:MM:ss')
// 'Sun , 2016-07-17 18:12:51'
new Date().format('dddd , yyyy-mm-dd HH:MM:ss')
//'Sunday , 2016-07-17 18:12:58'
new Date().format('dddd ddSS of mmm , yy')
// 'Sunday 17thth +0300f Jul , 16'
new Date().format('dddd ddS mmm , yy')
//'Sunday 17th Jul , 16'
new Date().toString("yyyyMMddHHmmss").
replace(/T/, ' ').
replace(/\..+/, '')
dengan .toString (), ini menjadi dalam format
ganti (/ T /, ''). // ganti T ke '' 2017-01-15T ...
ganti (/..+/, '') // untuk ... 13: 50: 16.1271
contoh, lihat var date
dan hour
:
var date="2017-01-15T13:50:16.1271".toString("yyyyMMddHHmmss").
replace(/T/, ' ').
replace(/\..+/, '');
var auxCopia=date.split(" ");
date=auxCopia[0];
var hour=auxCopia[1];
console.log(date);
console.log(hour);
.toString("yyyyMMddHHmmss")
?
Untuk format tanggal cara yang paling mudah adalah menggunakan lib saat. https://momentjs.com/
const moment = require('moment')
const current = moment().utc().format('Y-M-D H:M:S')
toISOString()
dantoUTCString()
Saya membutuhkan perpustakaan format sederhana tanpa lonceng dan peluit dukungan lokal dan bahasa. Jadi saya modifikasi
http://www.mattkruse.com/javascript/date/date.js
dan menggunakannya. Lihat https://github.com/adgang/atom-time/blob/master/lib/dateformat.js
Dokumentasinya cukup jelas.
appHelper.validateDates = function (start, end) {
var returnval = false;
var fd = new Date(start);
var fdms = fd.getTime();
var ed = new Date(end);
var edms = ed.getTime();
var cd = new Date();
var cdms = cd.getTime();
if (fdms >= edms) {
returnval = false;
console.log("step 1");
}
else if (cdms >= edms) {
returnval = false;
console.log("step 2");
}
else {
returnval = true;
console.log("step 3");
}
console.log("vall", returnval)
return returnval;
}
Periksa kode di bawah ini dan tautan ke MDN
// var ts_hms = new Date(UTC);
// ts_hms.format("%Y-%m-%d %H:%M:%S")
// exact format
console.log(new Date().toISOString().replace('T', ' ').substring(0, 19))
// other formats
console.log(new Date().toUTCString())
console.log(new Date().toLocaleString('en-US'))
console.log(new Date().toString())
Saya pikir ini sebenarnya menjawab pertanyaan Anda.
Sangat menjengkelkan bekerja dengan tanggal / waktu dalam javascript. Setelah beberapa rambut beruban saya menemukan bahwa sebenarnya cukup sederhana.
var date = new Date();
var year = date.getUTCFullYear();
var month = date.getUTCMonth();
var day = date.getUTCDate();
var hours = date.getUTCHours();
var min = date.getUTCMinutes();
var sec = date.getUTCSeconds();
var ampm = hours >= 12 ? 'pm' : 'am';
hours = ((hours + 11) % 12 + 1);//for 12 hour format
var str = month + "/" + day + "/" + year + " " + hours + ":" + min + ":" + sec + " " + ampm;
var now_utc = Date.UTC(str);