none
bootstrap datetimepicker 重新初始化之后,日期为什么会变为1899年 RRS feed

  • 问题

  • 我的代码是这个样子的:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="DateTimePickQuestion1.WebForm1" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <!-- 新 Bootstrap 核心 CSS 文件 -->
        <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
        <!-- 可选的Bootstrap主题文件(一般不用引入) -->
        <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap-theme.min.css">
        <!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
        <script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
        <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
        <script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
    
        <!-- import datetimepicker js and css -->
        <script src="js/bootstrap-datetimepicker.js" type="text/javascript"></script>
        <script src="js/locales/bootstrap-datetimepicker.zh-CN.js" type="text/javascript"></script>
        <link href="css/bootstrap-datetimepicker.css" rel="stylesheet" type="text/css" />
    
        <!-- my script -->
        <script type="text/javascript">
    
            $(function () {
    
    
    
                $("#mySelect").change(function () {
    
                    $(".form_datetime").datetimepicker('remove');
    
                    var type = $("#mySelect").val();
    
                    switch (type) {
                        case "month":
                            $('.form_datetime').datetimepicker({
                                autoclose: true,
                                startView: 'year',
                                minView: 'year',
                                format: 'yyyy-mm'
                            });
                            break;
                        case "year":
                            $('.form_datetime').datetimepicker({
                                autoclose: true,
                                startView: 'decade',
                                minView: 'decade',
                                format: 'yyyy'
                            });
                            break;
    
                    } //end switch
    
                })//end change
    
            })//end ready
    
            
        
        </script>
    
    </head>
    <body>
        <div>
            <select id='mySelect'>
                <option value='year'>year</option>
                <option value='month'>month</option>
            </select>
    
            <div class="input-group date form_datetime col-md-2" >
                <input class="form-control" type="text" />
                <span class="input-group-addon">
                    <span class="glyphicon glyphicon-th"></span>
                </span>
            </div>
    
        </div>
    </body>
    </html>
    

    我的下拉选择框是用来控制日期控件的初始化样子,  

    选择month的话,日期控件可以选择年和月

    选择year的话,日期控件只能选择年。

    但是每当下拉框触发了change函数之后,日期控件的年份都会变成1899年,

    并不是原来的2014年

    如图:

    怎么可以让  select标签触发了change之后日期控件重新生成之后,还是显示今年2014年,

    求解,我是不是有什么地方写错了

    2014年11月24日 7:38

答案

  • 参考 http://stackoverflow.com/questions/11507508/bootstrap-datepicker-set-date-using-jquery

    在每次进入变函数时,先将年份撷取出来

    var year = $('.form_datetime').datetimepicker('getDate').getFullYear();

    当日期时间选择重新定义后,再将年份设定回去(01为固定月份)

    $(".form_datetime").datetimepicker("update", year + '-01');

    2014年11月25日 3:54

全部回复

  • 你要給今天的日子去 Value ,參考一下下列連結

    http://stackoverflow.com/questions/15423467/bootstrap-datepicker-today-as-default

    http://www.malot.fr/bootstrap-datetimepicker/demo.php


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    請記得將對您有幫助的回覆標示為解答以幫助其他尋找解答及參與社群討論的朋友們。
    Please remember to clickMark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    2014年11月24日 10:18
  • 大侠,您提供的方法不太行啊

    因为 bootstrap datetimepicker 并不像 datepicker一样可以 setDate这个属性啊。。。

    另外 datetimepicker有个属性是 startDate的,写了 startDate:new Date()之后,是没的选择今天之前的日期的,不好用、

    有没有别的方法

    2014年11月25日 1:11
  • 参考 http://stackoverflow.com/questions/11507508/bootstrap-datepicker-set-date-using-jquery

    在每次进入变函数时,先将年份撷取出来

    var year = $('.form_datetime').datetimepicker('getDate').getFullYear();

    当日期时间选择重新定义后,再将年份设定回去(01为固定月份)

    $(".form_datetime").datetimepicker("update", year + '-01');

    2014年11月25日 3:54
  • 谢谢   的确是用datetimepicker.update方法,谢谢
    2014年11月26日 1:29