我正在使用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方法)
答案 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对象,你可以在你的模型中使用它。