SORU
24 Mart 2014, PAZARTESİ


An tarih saat karşılaştırma js

Am biçimine an js kullanarak çıktığım zaman, burada iki tarih değeri var, ve bir tarih diğer daha büyük olduğunda belirli bir fonksiyon elde etmek istiyorum. Onların docs çoğunu okudum ama işlevi bunu başarmak için öğrenmek istemedim. Orada olacağını biliyorum, lütfen beni bulmak için yardım, Teşekkürler

Bu benim kodudur

var date_time = 2013-03-24   'T'   10:15:20:12   'Z'
var d = moment(date_time).tz('UTC'); // first date 

var now = new Date(),
    dnow = moment(now).tz('UTC'),
    snow = dnow.minute() % 15,
    diffnow = 15 - snow,
    tonow = moment(dnow).add('minute', diffnow),
    ahead30now = moment(tonow).add('minute', 30);

if (d > ahead30now) {
    // allow input time
    console.log('UTC TIME DB', d.format());
} else {

}

Edit

var date_time = req.body.date   'T'   req.body.time   req.body.timezone; // 2014-03-24T01:15:000
var utc_input_time = moment(date_time).utc(); // 2014-03-24T01:15:000
console.log('utc converted date_time', moment(date_time).utc().format("YYYY-MM-DDTHH:mm:SSS"));
var isafter = moment(utc_input_time).isAfter(moment('2014-03-24T01:14:000')); // true
if(isafter === true){
    console.log('is after true');
} else {
    console.log('is after is false');
}

Burada iki tarih ıe karşılaştırarak am 2014-03-24T01:15:000>2014-03-24T01:14:000, birincisi ikincisi daha büyük, ama her zaman başka bir durum için gitmek bekliyor. Neden bilmiyorum ?

CEVAP
24 Mart 2014, PAZARTESİ


, *, isSame, *isBefore29 ve isAfter aradığınız inanıyorum.

Ama biraz çalışıyorsanız tam olarak söylemek zor. Belki de sadece giriş zaman ve şimdiki zaman arasında fark almak için arıyor? Eğer öyleyse, 30*,* 15 ** düşünün. Örneğin:

moment().diff(date_time, 'minutes')

Birkaç şey:

  • İlk satırda bir hata var

    var date_time = 2013-03-24   'T'   10:15:20:12   'Z'
    

    Bu işe yaramayacak. Demek istedin sanırım

    var date_time = '2013-03-24'   'T'   '10:15:20:12'   'Z';
    

    Tabii ki, olabilir:

    var date_time = '2013-03-24T10:15:20:12Z';
    
  • Kullanıyorsun: .tz('UTC') yanlış. .tz moment-timezone aittir. Diğer zaman dilimleri, America/Los_Angeles gibi çalıştığınız sürece kullanmanıza gerek yok.

    Eğer UTC olarak bir değeri ayrıştırılamadı istiyorsanız, kullanın:

    moment.utc(theStringToParse)
    

    Ya da, eğer yerel bir değeri ayrıştırılamadı istersenizdönüştürmekbu UTC için, kullanın:

    moment(theStringToParse).utc()
    

    Ya da belki de hiç gerek yok. Giriş değeri UTC sırf sizin vazifeniz boyunca UTC çalışmak zorunda olduğun anlamına gelmez.

  • "Şimdi" moment(new Date()) tarafından bir örneği. olmak için Sadece moment() kullanabilirsiniz.

Güncellendi

Düzenle dayanarak, sadece bunu yapabilirsiniz bence

var date_time = req.body.date   'T'   req.body.time   'Z';
var isafter = moment(date_time).isAfter('2014-03-24T01:14:00Z');

Ya da, eğer alanların doğru biçimde doğrulanmış olduğundan emin olmak için isterseniz:

var m = moment.utc(req.body.date   ' '   req.body.time, "YYYY-MM-DD  HH:mm:ss");
var isvalid = m.isValid();
var isafter = m.isAfter('2014-03-24T01:14:00Z');

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • dhcrr's channel

    dhcrr's chan

    2 Ocak 2007
  • mahalodotcom

    mahalodotcom

    8 HAZİRAN 2007
  • sWooZie

    sWooZie

    9 ŞUBAT 2006