使用不同格式区分两个引导日期选择器日期之间的差异

时间:2015-01-05 06:33:45

标签: jquery twitter-bootstrap datepicker bootstrap-datepicker

我在网络应用程序的前端使用bootstrap datepicker。数据库需要格式为dd-mm-yyyy的所有日期。所以这就是我使用datepicker的方式。

  <script>
            $(function() {
                $(".dates").datepicker({ 
                     format: 'dd-mm-yyyy',
                     autoclose: true
                });
            });
  </script>

我现在有了一项新要求,要检查两个月份之间的差异。 我试过这段代码:

var onBookingDate = new Date(jQuery('#datepick_onBooking').val());
var commencingDate = new Date(jQuery('#commencingDate').val());

var msPerMonth = 1000*60*60*24*30;

    alert(onBookingDate );
    alert(commencingDate );
    alert (Math.floor(commencingDate .getTime() - onBookingDate.getTime())/msPerMonth );

在此,它以mm-dd-yyyy

的格式提醒日期

即:如果我选择10-02-2015(2015年2月10日),它会将日期提醒为2015年10月2日。

如何将收到警报的日期格式更改为dd-mm-yyyy?我无法将格式更改为mm-dd-yyyy,因为数据库需要格式为dd-mm-yyyy的日期。

谢谢!

2 个答案:

答案 0 :(得分:1)

您正在尝试使用Date构造函数的无效字符串格式创建日期对象。

在API中使用getDate()方法通常更容易使用日期选择器而不是必须使用字符串值并再次转换它们。

API通常会返回一个日期对象(jQueryUI,Bootstrap等)。

var onBookingDate = jQuery('#datepick_onBooking').datepicker('getDate');
var commencingDate = jQuery('#commencingDate').datepicker('getDate');

参考: bootstrap datepicker getDate() docs

答案 1 :(得分:0)

每当谈到javascript中的日期处理时,现在的第一个选择应该是在项目中包含moment.js。然后,您可以使用

简单地更改日期的格式
moment(date here).format('desired format')

请参阅文档here

要插入数据库,这应该足够了:

moment(date here).format();   

moment.js使添加或子日期变得非常容易,您可以轻松处理日期范围this plugin到moment.js