javascript - 如何在javascript中解析日期中的 "30-06-2017 07:55 pm"

标签 javascript jquery twitter-bootstrap jsp jsp-tags

我的 JSP 表单 中有以下 Bootstrap 日期选择器元素:

<tr>
<td>
   <form:label path="bookStartTime" title="Booking Start Time" class="control-label">Booking Start Time
   <font color="red">&nbsp;&nbsp;*</font>
   </form:label>
</td>
<td>
   <div class='input-group date' id='datetimepicker6'>
   <form:input path="bookStartTime" title="Booking Start time" class="form-control input-sm" placeholder="DD-MM-YYYY hh:mm am/pm" /> 
   <span class="input-group-addon">
      <span class="glyphicon glyphicon-calendar"></span>
   </span>
   </div>
</td>
</tr>

我使用下面的JavaScript来选择这种格式的时间戳DD-MM-YYYY hh:mm a:

$(function () {
    $('#datetimepicker6').datetimepicker({format: 'DD-MM-YYYY hh:mm a'});
    $('#datetimepicker6').data("DateTimePicker").minDate(new Date());
});

现在我需要将日期选择器中选定的日期与来自后端(数据库)的具有相同格式的许多日期进行比较。

问题是在 javascript 中我无法解析这个 DD-MM-YYYY hh:mm 日期格式。 我尝试了很多方法和 moment.js,但经过很长时间后没有成功。

如果可能的话,如果您能提供一些链接/引用或解决方案,那就太好了。谢谢!

最佳答案

对于格式为 DD-MM-YYYY hh:mm a 的日期字符串,最好的选择是使用正则表达式,以正确的顺序从字符串中获取所有数字并将它们传递给 Date() 构造函数来获取日期对象。

例如:

var x = '30-06-2017 20:50 pm';
// returns array of matched 2 and 4 digit numbers
var arr = x.match(/([0-9]{2,4})/g); 
// arr equals ['30', '06', '2017', '20', '50']
var dateObj = new Date(arr[2], arr[1], arr[0], arr[3], arr[4]);

就这样,dateObj 就是您要寻找的。希望这会有所帮助。

关于javascript - 如何在javascript中解析日期中的 "30-06-2017 07:55 pm",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44849245/

相关文章:

html - 修复了使用 Phonegap 和 Bootstrap 单击链接时 div 闪烁的问题

java - 如何在产品、LESS 或压缩 CSS 中使用 Twitter Bootstrap?

html - Bootstrap 列排序的真实用例(推、拉)

php - 无法看到使用ajax和php从服务器响应的html代码

javascript - 在 d3js 中移动连接的矩形

javascript - ReactJS 用于编辑评论

javascript - Jquery 和 CSS 动画在 ANDROID Webview 应用程序中不起作用

javascript - 拖放 - 拖动时创建新的网格行

javascript - 打印不满足条件的元素

javascript - 如何在单击单选按钮后在固定的时间间隔内禁用它们?