【问题标题】:Date in calendar sets back to current date when page is refreshed刷新页面时,日历中的日期设置回当前日期
【发布时间】:2016-12-26 18:30:27
【问题描述】:

我在 UI 上有一个日历,最初加载页面时,当前日期应显示在日历中。我通过以下方式实现这一目标:

$('#single_cal1').attr("placeholder", new Date().toLocaleDateString());

现在,如果用户在日历中选择另一个日期,我可以根据选择更新日历框中的日期。

问题:当页面刷新时,日历框中的日期会返回到当前日期。这很明显,因为在页面上刷新我的代码

 $('#single_cal1').attr("placeholder", new Date().toLocaleDateString());

运行并将日期设置为当前。

请注意,我在 localStorage 中始终提供“用户选择的日期”。

当前代码:

<script>
 $('#single_cal1').attr("placeholder", new Date().toLocaleDateString());
</script>

我想要实现的代码:

<script>
var x  = localStorage.getItem('date'); // OUPTUT OF DATE IS 2016-08-19T14:22:53.339Z
var y  = x.toLocaleDateString();
     $('#single_cal1').attr("placeholder",y);
    </script>

但我得到错误。而且我有点知道为什么我会出错。有什么办法可以格式化从本地存储中获取的日期。谢谢!

【问题讨论】:

    标签: javascript jquery html date calendar


    【解决方案1】:

    你可以这样做:

    var y  = new Date(x).toLocaleDateString();
    // new Date('2016-08-19T14:22:53.339Z').toLocaleDateString()
    // returns 8/19/2016
    

    【讨论】:

    • 非常感谢。所以基本上本地存储不明白我已经保存了“日期对象”所以明确地我需要将 x 传递给“日期”。我说的对吗?
    • jsfiddle.net/3prcf54c/1 @Unbreakable X 是一个字符串 '2016-08-19T14:22:53.339Z' 因此,String 不是有 .toLocaleDateString() 方法,因为它不是 Date Object
    • 不客气! JS 更新以匹配输入占位符样式
    • 是的。 @GrégoireFruleux 是对的。如果您执行console.log(typeof (x)),您将看到它是一个字符串而不是日期对象。为此,我们使用new Date(x)。所以,现在如果你执行console.log(typeof (new Date(x))),你会看到它被转换为object,我们现在可以安全地调用.toLocaleDateString()
    猜你喜欢
    • 1970-01-01
    • 2014-05-06
    • 2021-06-15
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    • 2021-02-06
    • 2019-09-12
    • 2021-11-05
    相关资源
    最近更新 更多