转换日期格式javascript beforeshowday

时间:2017-10-30 04:30:16

标签: javascript date datepicker format

    var dates = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewData["ph"]));
    //dates[0] = 16-09-2017
    //date = 09/16/2017
    $('#StartDate').datepicker({
        dateFormat: JsDateFormat,
        autoclose: true,
        beforeShowDay: function (date) {
            for (var i = 0; i < dates.length; i++) {
                if (new Date(dates[i]).toString() == date.toString()) {
                    console.log(date);
                    return [true, 'ui-state-highlight highlight-red', name[i]];
                }
            }
            return [true];
        }
    });

如何将日期格式从'09 / 16/2017'更改为'16 -09-2017'? 我试过了 新日期('dd-M-yy',日期).toString() - 无效 date.toString('dd-M-yy') - 不工作

3 个答案:

答案 0 :(得分:1)

由于您使用的是datepicker,因此您可以使用$.datepicker.formatDate

以下是使用formatDate比较数组中日期的代码段:

var dates = ['10-10-2017', '25-10-2017', '29-10-2017'];
$('#StartDate').datepicker({
    dateFormat: "d/m/yy",
    autoclose: true,
    beforeShowDay: function (date) {
      for (var i = 0; i < dates.length; i++) {
        if (dates[i] == $.datepicker.formatDate('dd-mm-yy', date)) {
          console.log(date);
          return [true, 'ui-state-highlight highlight-red', name[i]];
        }
      }
      return [true];
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<input type="text" id="StartDate" name="StartDate"/>

答案 1 :(得分:0)

ViewData [&#34; ph&#34;]日期时间将转换为运行应用程序的服务器文化的字符串,因此请务必在服务器中使用此格式进行转换并分配给 ViewData的

如果传递给JsonConvert的值是一种Date对象,那么请使用方法SerializeObject

的格式化参数
JsonConvert.SerializeObject(this, Formatting.None, new IsoDateTimeConverter() { 
             DateTimeFormat = "dd-M-yy" });

如果您想将日期转换为字符串,请参阅@rahul先生提供的答案 适用于所有浏览器

   function formattedDate(d) {
    var month = d.getMonth() + 1;
    var day = d.getDate();
    var year = d.getFullYear();

  if (month.length < 2) month = '0' + month;
  if (day.length < 2) day = '0' + day;

  return day + '/' + month + '/' + year;
}

答案 2 :(得分:-1)

NSString *valueOfUser = @"I want Poland";

NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(NSString *evaluatedObject, NSDictionary *bindings) {
    return [valueOfUser containsString:evaluatedObject];
}];

NSArray *arr = @[
                 @"Canada",
                 @"Poland",
                 @"México"
                 ];

NSArray *filtered = [arr filteredArrayUsingPredicate:predicate];

此函数以您需要的格式返回日期