NodeJS kullanarak, a Date
aşağıdaki dize biçimine biçimlendirmek istiyorum:
var ts_hms = new Date(UTC);
ts_hms.format("%Y-%m-%d %H:%M:%S");
Bunu nasıl yaparım?
NodeJS kullanarak, a Date
aşağıdaki dize biçimine biçimlendirmek istiyorum:
var ts_hms = new Date(UTC);
ts_hms.format("%Y-%m-%d %H:%M:%S");
Bunu nasıl yaparım?
Yanıtlar:
Node.js kullanıyorsanız, EcmaScript 5'e sahip olduğunuzdan emin olun, böylece Date'in bir toISOString
yöntemi vardır. ISO8601'de küçük bir değişiklik istiyorsunuz:
new Date().toISOString()
> '2012-11-04T14:51:06.157Z'
Sadece birkaç şeyi kesin ve hazırsınız:
new Date().toISOString().
replace(/T/, ' '). // replace T with a space
replace(/\..+/, '') // delete the dot and everything after
> '2012-11-04 14:55:45'
Veya tek bir satırda: new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '')
ISO8601 zorunlu olarak UTC'dir (ilk sonuçta sondaki Z ile de belirtilir), bu nedenle varsayılan olarak UTC alırsınız (her zaman iyi bir şeydir).
Object has no method 'toISOString'
alırsanız, kaçırdınıznew
new Date().toISOString().replace('T', ' ').substr(0, 19)
gayet iyi çalışıyor.
GÜNCELLEME 2017-03-29: Tarih-fns, Moment ve Datejs hakkında bazı notlar eklendi
GÜNCELLEME 2016-09-14: Bazı mükemmel tarih / saat işlevlerine sahip gibi görünen SugarJS eklendi.
Tamam, kimse gerçek bir cevap vermediği için işte benim.
Kütüphane kesinlikle tarih ve saatleri standart bir şekilde ele almak için en iyi seçenektir. Tarih / saat hesaplamalarında birçok uç durum vardır, bu nedenle geliştirmeyi bir kütüphaneye dağıtmak yararlıdır.
Düğüm uyumlu zaman formatlama ana kütüphanelerinin listesi:
Düğüm olmayan kütüphaneler de vardır:
Dönüştürmek için bir kütüphane var:
npm install dateformat
Sonra gereksiniminizi yazın:
var dateFormat = require('dateformat');
Sonra değeri bağlayın:
var day=dateFormat(new Date(), "yyyy-mm-dd h:MM:ss");
tarih biçimine bakınız
result.request_date
?
Genel olarak kütüphanelere karşı hiçbir şeyim yok. Bu durumda, başvuru sürecinin diğer bölümleri yoğun bir şekilde tarihlenmedikçe, genel amaçlı bir kitaplık aşırı dolu gibi görünür.
Bunun gibi küçük faydalı fonksiyonlar yazmak aynı zamanda hem başlangıç hem de başarılı programcılar için yararlı bir alıştırmadır ve aramızdaki acemiler için bir öğrenme deneyimi olabilir.
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" */
Herhangi bir kütüphane kullanmadan istediğiniz formatta zaman damgası almanın kolay okunabilir ve özelleştirilebilir yolu:
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())
}
(UTC biçiminde zamana ihtiyacınız varsa, sadece işlev çağrılarını değiştirin. Örneğin "getMonth", "getUTCMonth" olur)
Javascript kütüphanesi sugar.js ( http://sugarjs.com/ ) tarihleri biçimlendirme işlevlerine sahiptir
Misal:
Date.create().format('{dd}/{MM}/{yyyy} {hh}:{mm}:{ss}.{fff}')
Date nesnesinde sağlanan yöntemi aşağıdaki gibi kullanın:
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));
Gerçekten kirli görünüyor, ancak JavaScript çekirdek yöntemleriyle iyi çalışmalı
Dateformat kullanıyorum Nodejs ve angularjs, bu nedenle iyi de
Yüklemek
$ npm install dateformat
$ dateformat --help
gösteri
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 ....
UTC ofsetini yerel saate ekleyin ve ardından nesne toLocaleDateString()
yöntemiyle istenen formata dönüştürün Date
:
// 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));
Yerel saate varsayılan olarak bir tarih nesnesi oluşturuyorum. Ben UTC off-set ekliyorum. Bir tarih biçimlendirme nesnesi oluşturuyorum. UTC tarihini / saatini istenen biçimde görüntülüyorum:
X sınıfı kütüphaneninx-date
alt modüllerinden biri olan modülü kullanın ;
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(/\..+/, '')
ile .toString (), Bu formatta olur
değiştirin (/ T /, ''). // T yerine '' 2017-01-15T ...
13: 50: 16.1271 için değiştirin (/..+/, '') //
örnek, bkz. var date
ve 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")
?
Tarih biçimlendirmesi için en kolay yol moment lib kullanmaktır. https://momentjs.com/
const moment = require('moment')
const current = moment().utc().format('Y-M-D H:M:S')
toISOString()
vetoUTCString()
Yerel ayar ve dil desteği çanları ve düdükleri olmadan basit bir biçimlendirme kütüphanesine ihtiyacım vardı. Bu yüzden değiştirdim
http://www.mattkruse.com/javascript/date/date.js
ve kullandım. Bkz. Https://github.com/adgang/atom-time/blob/master/lib/dateformat.js
Belgeler oldukça açık.
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;
}
Aşağıdaki kodu ve MDN bağlantısını kontrol edin
// 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())
Bence bu aslında sorunuzu cevaplıyor.
Javascript tarih / saat ile çalışmak çok can sıkıcı bir durum. Birkaç gri kıldan sonra bunun oldukça basit olduğunu anladım.
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);