如何为包含日期的模板字符串调用javascript函数

时间:2013-12-20 06:09:41

标签: javascript html datetime

我是Javascript和HTML的新手。当我点击一个按钮时,我会弹出一个弹出屏幕,显示从XML中提取的日期。现在,下面是代码

<script id="template" type="text/x-handlebars-template">
<table>    
<tr>
    <th>Posted on: </th>
    <td>function(){var myDate="{{posted}}";
       myDate=myDate.split("-");
       var newDate=myDate[0]+"/"+myDate[1]+"/"+myDate[2];
       return(new Date(newDate).getTime());}?></td>
    </tr>
</table>
</script>      

提取日期的格式为(Y-m-d),如2012-12-03,必须更改为2013年12月3日。到目前为止我已经完成了,当我点击按钮时弹出窗口没有出现。当我在firebug中检查控制台时,我看到了这个错误 - SyntaxError: function statement requires a name。我无法使用任何事件功能,单击此按钮时应显示日期。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

如果您的日期格式为yyyy-mm-dd,您可以使用以下内容将其重新格式化为dd-mmm-yyyy:

function reformatDate(s) {
  var months = ['Jan','Feb','Mar','Apr','May','Jun',
                'Jul','Aug','Sep','Oct','Nov','Dec'];
  var t = s.split('-');
  return t[2] + '-' + months[--t[1]] + '-' + t[0];
}

哪个应该位于某个脚本元素中,或者从外部文件加载。在HTML中你会有类似的东西:

<table>
  <tr>
    <th>Posted on: </th>
    <td id="myDate"></td>
  </tr>
</table>

不知何故,您从模板中获取值到页面中并使用函数将其放入表中,可能:

window.onload = function() {
  document.getElementById('myDate').innerHTML = formatDate('2013-12-12');
}

我不知道如何从XML中获取值并将其传递给函数。在我看来,如果在服务器上读取XML,它可以将值直接写入HTML。如果从客户端使用AJAX访问它,那么您可以在回调中将其写入表中,而不是使用 window.onload