moment construction falls back to js Date
moment construction falls back to js Date
我使用daterangepicker
和moment
来选择不同的范围。我需要动态设置startDate
和endDate
。
在html.erb
文件中:
<%if params[:campaign_report].present? && params[:campaign_report]["daterange"].present?%>
<%date_range= params[:campaign_report]["daterange"].split("-")%>
<%= @start_date= Date.parse(date_range[0]).strftime("%Y/%m/%d")%>
<%= @end_date= Date.parse(date_range[1]).strftime("%Y/%m/%d")%>
<%else%>
<%= @start_date= Date.parse(@daterange).strftime("%Y/%m/%d")%>
<%= @end_date= Date.parse(@daterange).strftime("%Y/%m/%d")%>
<%end%>
<script type="text/javascript">
$(function() {
function report_form_submit(start, end) {
$('#daterange').val(start.format('MMM D, YYYY') + ' - ' + end.format('MMM D, YYYY'));
$("#campaign_report_daterange").val($("#daterange").val())
$("#daily_filter_form").submit();
}
$('#daterange').daterangepicker({
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'Last 30 Days': [moment().subtract(29, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
},
startDate: moment('<%= @start_date%>'),
endDate: moment('<%= @end_date%>')
}, report_form_submit);
});
.....
我在浏览器控制台收到警告,如:
弃用警告:moment构造回落到js Date。这是不鼓励的,并将在即将发布的主要版本中删除。更多信息请访问https://github.com/moment/moment/issues/1407。
按照警告中的链接给出的指示:使用时刻解析指定格式。
如文档所说:
警告:浏览器对解析字符串的支持不一致。因为没有规范说明应该支持哪些格式,所以在某些浏览器中有效的内容在其他浏览器中可能不起作用。
为了解析除ISO 8601字符串之外的任何内容的一致结果,您应该使用String + Format。
在你的情况下,你必须使用:
startDate: moment('<%= @start_date%>', 'YYYY/MM/DD'),
endDate: moment('<%= @end_date%>', 'YYYY/MM/DD')
相关文章:
- Date.js错误地分析了ISO 8601 UTC日期
- JS:如何将字符串(“2015年3月10日”)转换为Date对象
- JS RegEx for date&名称规则
- 根据格式Y-m-d H:i:s创建JS Date类
- JS Date() 返回正确的时区,但返回错误的日期
- 使用js date Object-performance将给定日期转换为所需的日期格式
- JS Date对象未定义
- 如何从UTC时间戳中获取JS Date对象
- JS Date()-天数的前导零
- 将Js Date对象转换为python datetime
- moment construction falls back to js Date
- JS Date对象-返回不带时间的可读字符串
- 如何解析JS Date以在所有浏览器中保持一致
- JS Date()对象的奇怪之处
- JS Date()需要错误的数据来返回正确的结果
- 将序列化的c# DateTime转换为JS Date对象
- unix时间戳-Moment.js:Date.now()javaScript模拟
- 如何将JS Date格式化为与C#兼容的DateTime
- Moment:弃用警告:Moment构造回退到js Date
- JS Date函数在Safari中不工作