尝试格式化模板中的日期时,Kendo.ParseDate会引发语法错误

时间:2017-11-08 19:18:58

标签: html kendo-ui kendo-grid

这可能是一个需要修复的简单问题,但我耐心地试图寻找解决方案。我使用的是kendo ui内联网格,我有两个日期字段。值本身似乎是作为字符串来实现的,我可以通过使用下面的oode来解决这些问题。

        <div id="Grid" class="inline-edit-grid"
             <!-- ... -->
             data-columns="[
             <!-- ... -->
                { field: 'RequestedDate',title: 'Requested', width: 15, template: '#= kendo.parseDate(RequestedDate,'M/dd/yyyy h:mm tt')#'},
                { field: 'AcceptedDate',title: 'Accepted', width: 15, template: '#= kendo.parseDate(AcceptedDate,'M/dd/yyyy h:mm tt')#'},
              ]">

这可以给我一个日期值,但它的格式为&#34; Thu Nov 09 2017 13:15:00 GMT-0500(东部标准时间)&#34;。相反,我希望格式为&#39; M / dd / yyyy h:mm tt&#39;。因此我尝试使用代码

 { field: 'RequestedDate',title: 'Requested', width: 15, template: '#= kendo.toString(kendo.parseDate(RequestedDate,'M/dd/yyyy h:mm tt'))#'}

这会在格式字符串中引发语法错误。从各方面来看,这不应该发生,我已经尝试了大量的格式字符串组合,以达到相同的结果。

2 个答案:

答案 0 :(得分:0)

问题是在模板的带引号的字符串中使用引号。您可以通过下面的字符串着色的方式查看问题:

"#= kendo.toString(kendo.parseDate(RequestedDate,'M/dd/yyyy h:mm tt'))#"

您可以尝试使用双引号将带有单引号的字符串括在:

'#= kendo.toString(kendo.parseDate(RequestedDate,"M/dd/yyyy h:mm tt"))#'

反之亦然:

'#= kendo.toString(kendo.parseDate(RequestedDate,\'M/dd/yyyy h:mm tt\'))#'

或者用\来转义字符串中的引号。你可能需要双\ \来逃避,我不记得了:

template: '#= kendo.toString(new Date(RequestedDate), "G")#',

其中一个或全部应该有用。

好的,试试这个:

# UserBundle\Resources\config\services.xml

<service id="saml.backend.fosuser.provider" class="UserBundle\Security\User\FosBackendSamlUserProvider">
    <argument type="service" id="samlauth.service"/>
    <argument type="service" id="fos_user.user_manager"/>
</service>

您不需要解析日期,而是从中创建一个javascript日期,然后使用kendo.toString对其进行格式化。 点击此处example了解格式选项。

答案 1 :(得分:0)

错误的引号。

更改为

'#= kendo.toString(kendo.parseDate(RequestedDate,"M/dd/yyyy h:mm tt"))#'

应该修正错误。

希望这对你有帮助:))