如果日期时间值 = null 则使用今天的日期

发布于 2024-10-10 14:15:02 字数 810 浏览 2 评论 0原文

我试图弄清楚,如果在日期选择器上没有选择日期,它将提交今天的日期,而不是提交 null。

正如您从下面的代码中看到的,我已经尝试了多种方法,但没有成功,没有视图模型,并且全部位于单个页面上,如果我在日期选择器上选择日期,则没有问题。

查看页面日期代码

<div class="rowElem">
    <label for="Date">Date</label>
    <div id="cal" style="float:left;"></div>
    <%= Html.HiddenFor(h => Model.Date)%>
</div>

Jquery datepicker 代码

$('#cal').datepicker({
            dateFormat: 'dd/mm/yy',
            [setDefaults: ({ defaultDate: '-0d' }),
            defaultDate: '-0d', tried both this and above line and neither worked]
            onSelect: function (dt, inst) {
                $('#Date').val(dt);
            }
        });

控制器创建日期的邮政编码

oq.Date = DateTime.Parse(fc["Date"]);

I'm trying to get it that if no date is selected on the datepicker that instead of submitting null it will submit todays date.

as you can see from the below code I've already tried a number of ways but to no success, there is no viewmodel and it is all on a single page which if I select a date on the datepicker it has no problem.

view page date code

<div class="rowElem">
    <label for="Date">Date</label>
    <div id="cal" style="float:left;"></div>
    <%= Html.HiddenFor(h => Model.Date)%>
</div>

Jquery datepicker code

$('#cal').datepicker({
            dateFormat: 'dd/mm/yy',
            [setDefaults: ({ defaultDate: '-0d' }),
            defaultDate: '-0d', tried both this and above line and neither worked]
            onSelect: function (dt, inst) {
                $('#Date').val(dt);
            }
        });

Controller create post code for date

oq.Date = DateTime.Parse(fc["Date"]);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

浅唱ヾ落雨殇 2024-10-17 14:15:03

您可以使用 TryParse 而不是 Parse

DateTime tmp = DateTime.MinValue;
oq.Date = DateTime.TryParse(fc["Date"], out tmp) ? tmp : DateTime.Today;

Instead of Parse you could use TryParse:

DateTime tmp = DateTime.MinValue;
oq.Date = DateTime.TryParse(fc["Date"], out tmp) ? tmp : DateTime.Today;
烟酒忠诚 2024-10-17 14:15:03
if (oq.Date == null)
            { oq.Date = DateTime.Now; }
            else
            { oq.Date = DateTime.Parse(fc["Date"]); }

这很有效,能够弄清楚托马斯·詹森和杰克逊·波普斯的答案。

if (oq.Date == null)
            { oq.Date = DateTime.Now; }
            else
            { oq.Date = DateTime.Parse(fc["Date"]); }

This worked, was able to figure it out thx to Tomas Jansson and Jackson Popes answers.

你又不是我 2024-10-17 14:15:03

在你的 C# 中尝试一下:

DateTime date;
if (!DateTime.TryParse(fc["Date"], out date))
    date = DateTime.Today;

oq.Date = date;

编辑:基于 Myzifer 的评论。

Try this in your C#:

DateTime date;
if (!DateTime.TryParse(fc["Date"], out date))
    date = DateTime.Today;

oq.Date = date;

Edited: based on Myzifer's comment.

九命猫 2024-10-17 14:15:03

不能直接在服务器端解决吗?如果提交 null 则使用今天的日期:

if(fs["Date"] == null)
   oq.Date = DateTime.Now;
else
   oq.Date = DateTime.Parse(fc["Date"]);

此外,您的变量确实应该有更多描述性名称。也许将来会有人阅读你的代码。

Can't you just solve it on server side? If null is submitted use todays date:

if(fs["Date"] == null)
   oq.Date = DateTime.Now;
else
   oq.Date = DateTime.Parse(fc["Date"]);

Also, you should really have more descriptive names on your variables. Maybe someone else will read your code in the future.

久夏青 2024-10-17 14:15:03

fc 从哪里来。如果它是一个数据库问题,您可能可以使用 isnull(fieldname, getdate()) 或类似的函数让它在字段为 null 时返回今天。

Mysql 使用 ifnull 而不是 isnull。

Where does fc come from.If its is a database question you could probably use isnull(fieldname, getdate()) or similary function to have it return today if field is null.

Mysql uses ifnull instead of isnull.

旧故 2024-10-17 14:15:03

在分配从发布请求传递的日期之前,请验证日期数据以查看它是否不是正确的值,并将其设置为今天的日期,否则使用发布数据(如果正确)。

Before assigning the date passed from a post request, validate the date data to see if it is not a correct value and set it to today's date else use the post data, if correct.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文