0

J'ai un .cshtml avec un daterangepicker.js implémenté dedans. Cette page obtient la plage de dates (à ce jour, à partir de la date) d'une page parente via ViewBag. Le code est le suivant:Daterangepicker moment() renvoie les nombres

var _FromDate; 
var _EndDate; 

$(function() { 
    var from1 = '@ViewBag.from_date'; 
    var from = from1.split("-"); 
    var f = new Date(from[0], from[1] - 1, from[2]); 

    var to1 = '@ViewBag.to_date'; 
    var to = to1.split("-"); 
    var t = new Date(to[0], to[1] - 1, to[2]); 

    var start = (f.getFullYear() + '-' + pad((f.getMonth() + 1), 2) + '-' + pad(f.getDate(), 2)); 
    var end = (t.getFullYear() + '-' + pad((t.getMonth() + 1), 2) + '-' + pad(t.getDate(), 2)); 

    function cb(start, end) { 

     $('#reportrange span').html(start + ' . ' + end); 
     var dateRange = $('#reportrange span').html(); 
     _FromDate = dateRange.substring(0, dateRange.indexOf('.')); 
     _EndDate = dateRange.substring(dateRange.indexOf('.') + 1); 
    }; 

    function pad(str, max) { 
     str = str.toString(); 
     return str.length < max ? pad("0" + str, max) : str; 
    } 

    $('#reportrange').daterangepicker({ 
     startDate: start, 
     endDate: end, 
     locale: { format: "YYYY-MM-DD" }, 
     ranges: { 
      'Today': [moment(), moment()], 
      'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], 
      'Last 7 Days': [moment().subtract(6, 'days'), moment()], 
      'Last 30 Days': [moment().subtract(29, 'days'), moment()], 
      'This Month': [moment().startOf('month'), moment().endOf('month')], 
      'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] 
     } 
    }, cb); 

    cb(start, end); 

}); 

Maintenant, voici le problème: lors de l'exécution de la page, le daterangepicker retourne la date a string of numbers

Quelle est la cause du problème? J'ai parcouru le code étape par étape et je n'arrive pas à trouver le problème.

Toute aide est appréciée!

+0

peut vous console.log les valeurs de ** partir1 ** et ** à1 ** et coller ici, juste après leur déclaration respective ... –

+0

@ThirueswaranRajagopalan c'est parti: de1 shows 2017-09-10 et to1 shows 2017-09-10 (parce qu'à la page précédente j'ai choisi 'Today' donc ça montre les mêmes valeurs pour les deux from1 et to1 – ragg

+0

C'est tout bon, c'est juste '$ ('# reportrange span'). Html (début + '.' + Fin);' le ** début ** et ** fin ** sont convertis en un horodatage unix (ms) –

Répondre

0

Vous avez obtenu un code inutile, je ne débarquez un rewite https://embed.plnkr.co/G3xxp0HWPOoFYuF8u2qd/

/* global variables to store your dates ..*/ 
var _FromDate; 
var _EndDate; 

$(function() { 
    var _format = "YYYY-MM-DD"; 
    var start = moment('@ViewBag.from_date', _format); 
    var end = moment('@ViewBag.from_date', _format); 

    /* update your display summary and your local variables... */ 
    function cb(start, end) { 
    /* 
     storing the moment object. If case you post these values over to a server, defaulr ajax transforms into ISOstring. 
     But in case it doesn't, your should _FromDate = start.toISOString() or if u have a sppecific format start.format('{your format}') 
    */ 
    _FromDate = start; 
    _EndDate = end; 
    $('#reportrange span').html(start.format(_format) + ' - ' + end.format(_format)); 
    } 

    $('#reportrange').daterangepicker({ 
    startDate: start, 
    endDate: end, 
    locale: { format: _format }, 
    ranges: { 
     'Today': [moment(), moment()], 
     'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], 
     'Last 7 Days': [moment().subtract(6, 'days'), moment()], 
     'Last 30 Days': [moment().subtract(29, 'days'), moment()], 
     'This Month': [moment().startOf('month'), moment().endOf('month')], 
     'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] 
    } 
    }, cb); 

    cb(start, end); 

}); 
+0

j'ai ajouté le code, mais maintenant une erreur apparaît dans mon codebehind: Erreur de conversion du type de données nvarchar à ce jour. J'envoie les variables _FromDate et _EndDate au codebehind pour récupérer les données d'une procédure stockée. – ragg

+0

'_FromDate = start.format (_format)' BTW, l'a mentionné dans le commentaire ... –

+1

Cela a fonctionné! Merci beaucoup! – ragg