Javascript将日期字符串转换为DateTime类型(C#)格式问题

时间:2017-01-06 12:32:42

标签: javascript jquery combodate

我正在使用jquery combodate,它返回一个日期字符串:

dateString = "12-07-2006"

在我的Razor视图中,我有:

 @Html.HiddenFor(m => m.BirthDate)   // BirthDate is a C# variable of type DateTime

我想在js代码中做的是:

   var dateString = $('#date').combodate('getValue');   // like:   "12-07-2006"

   document.getElementById('BirthDate').value = dateString; // format is wrong

到目前为止,我尝试了多个寻找类似主题的示例,但没有一个正常工作。 我的意思是在发送表单后我的POST函数中,我有ModelState错误,它不是DateTime变量的有效值(Date = {0001-01-01 00:00:00} - 我在后端代码中获得post方法)

3 个答案:

答案 0 :(得分:1)

来自combodate文档:

  

所有方法都可以称为$(element).combodate('method',parameters)。

以下是combodate的示例:

$(function(){
  var dateString = "12-07-2006"
  $('#BirthDate').combodate('setValue', dateString);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://cdn.rawgit.com/vitalets/combodate/master/src/combodate.js"></script>

<input type="text" id="BirthDate" data-format="DD-MM-YYYY" data-template="D MMM YYYY" name="date">

答案 1 :(得分:0)

我希望您使用momentjs,因为您需要日期时间格式,这是最好的方式。 momentjs允许使用指定的时区解析日期。

var momentDate = moment("2014-09-15 09:00:00");
and can access the JS date object via

momentDate ().toDate();

请参阅http://momentjs.com/了解更多格式。

答案 2 :(得分:0)

也许只是在没有库的情况下手动完成,以了解您尝试进行的更多转换。

 //================================================================
    points = [];
    for (var i = 1; i < 100; i++) {
      points.push({
        Id: i,
        Cat: Math.random()*120.,
        Depth: Math.random() * 6000.
      });
    }

    //================================================================
    var filter;
    var depthDimension;
    var catDimension;
    var depthGrouping;
    var catGrouping;

    //-----------------------------------
    filter = crossfilter(points);

    // Threshold has to be put on dimension not on group
    // to get last bin filled with thresholded values
    // Compare with https://jsfiddle.net/PBrockmann/ma3wr55k/

    //-----------------------------------
    depthRange = [0., 5000.];
    catRange=[0.,100.];
    depthBinWidth = 500.;
    catBinWidth = 2.;
    depthDimension = filter.dimension(function(d) {
      // Threshold
      var depthThresholded = d.Depth;
      if (depthThresholded <= depthRange[0]) depthThresholded = depthRange[0];
      if (depthThresholded >= depthRange[1]) depthThresholded = depthRange[1] - depthBinWidth;
      return depthBinWidth * Math.floor(depthThresholded / depthBinWidth);
    });

    catDimension=filter.dimension(function(d){
        // Threshold
      var catThresholded = d.Cat;
      if (catThresholded <= catRange[0]) catThresholded = catRange[0];
      if (catThresholded >= depthRange[1]) catThresholded = catRange[1] - catBinWidth;
      return catBinWidth * Math.floor(catThresholded / catBinWidth);
    });

    catGrouping=catDimension.group();
    depthGrouping = depthDimension.group(); // by default reduceCount

    //-----------------------------------
    depthChart = dc.barChart("#chart-depth");
    catChart=dc.barChart("#chart-cat");
    dataTable = dc.dataTable("#dataTable");

    //-----------------------------------
    depthChart
      .width(380)
      .height(200)
      .margins({
        top: 10,
        right: 20,
        bottom: 30,
        left: 30
      })
      .centerBar(false)
      .elasticY(true)
      .elasticX(true)
      .dimension(depthDimension)
      .group(depthGrouping)
      .x(d3.scale.linear().domain(depthRange))
      .xUnits(dc.units.fp.precision(depthBinWidth))
      .round(function(d) {
        return depthBinWidth * Math.floor(d / depthBinWidth)
      })
      .renderHorizontalGridLines(true);

    xAxis_depthChart = depthChart.xAxis();
    xAxis_depthChart.tickFormat(d3.format("d"));
    yAxis_depthChart = depthChart.yAxis();
    yAxis_depthChart.ticks(6).tickFormat(d3.format("d")).tickSubdivide(0); // tickSubdivide(0) should remove sub ticks but not

    catChart
      .width(380)
      .height(200)
      .margins({
        top: 10,
        right: 20,
        bottom: 30,
        left: 30
      })
      .centerBar(false)
      .elasticY(true)
      .elasticX(true)
      .dimension(catDimension)
      .group(catGrouping)
      .x(d3.scale.linear().domain(catRange))
      .xUnits(dc.units.fp.precision(catBinWidth))
      .round(function(d) {
        return catBinWidth * Math.floor(d / catBinWidth)
      })
      .renderHorizontalGridLines(true);




    //-----------------------------------
    dataTable
      .dimension(depthDimension)
      .group(function(d) {
        return d.Id + "   " + d.Cat + "   " + d.Depth; // Data table does not use crossfilter group but rather a closure as a grouping function
      })
      .size(30);

    //-----------------------------------
    dc.renderAll();

现在mydate是一个Date对象,你可以在你的模型中使用它。