- Tìm số 0 đầu tiên trong một mảng bit
- Unix Hiển thị thông tin về các tập tin khớp với một trong hai mẫu
- Biểu thức chính quy thay thế nhiều tệp
- Ẩn lệnh từ xtrace
所以,我想做的是实现一个数据范围选择,它不显示两个日期选择器“从”和“到”。我想让用户在今天、昨天、上周、上个月等之间进行选择。
我在服务器端的应用程序中有类似的东西,但是: 1- 代码看起来很糟糕; 2- 我希望 API 接收“从”和“到”日期,我只希望用户看到一个友好的日期范围选择。
附加信息:我的前端基于 AngularJS。
我希望它看起来像这样:
服务器端的实际代码是这样的:
var today = DateTime.Now.Date;
if (dateRange == (int)DateRange.Custom)
{
var start = DateTime.ParseExact(dateFrom, "dd/MM/yyyy", null);
var end = DateTime.ParseExact(dateTo, "dd/MM/yyyy", null).AddDays(1);
query = query.Where(ss => ss.DateRecevied >= start && ss.DateRecevied < end);
return query;
}
if (dateRange == (int)DateRange.Today)
{
query = query.Where(ss => ss.DateRecevied >= today);
return query;
}
if (dateRange == (int)DateRange.Yesterday)
{
var dateShift = today.AddDays(-1);
query = query.Where(ss => ss.DateRecevied >= dateShift && ss.DateRecevied < today);
return query;
}
if (dateRange == (int)DateRange.ThisWeekFromSunToday)
{
var dt = DateTime.Now.StartOfWeek(DayOfWeek.Sunday);
query = query.Where(ss => ss.DateRecevied >= dt);
return query;
}
if (dateRange == (int)DateRange.ThisWeekFromMonToday)
{
var dt = DateTime.Now.StartOfWeek(DayOfWeek.Monday);
query = query.Where(ss => ss.DateRecevied >= dt);
return query;
}
if (dateRange == (int)DateRange.Last7Days)
{
var dateShift = today.AddDays(-7);
query = query.Where(ss => ss.DateRecevied >= dateShift);
return query;
}
if (dateRange == (int)DateRange.Last14days)
{
var dateShift = today.AddDays(-14);
query = query.Where(ss => ss.DateRecevied >= dateShift);
return query;
}
if (dateRange == (int)DateRange.ThisMonth)
{
var dateShift = new DateTime(today.Year, today.Month, 1);
query = query.Where(ss => ss.DateRecevied >= dateShift);
return query;
}
if (dateRange == (int)DateRange.Last30days)
{
var dateShift = today.AddDays(-30);
query = query.Where(ss => ss.DateRecevied >= dateShift);
return query;
}
if (dateRange == (int)DateRange.LastMonth)
{
var dateShift = new DateTime(today.Year, today.Month, 1);
var dateShift2 = dateShift.AddMonths(-1);
query = query.Where(ss => ss.DateRecevied >= dateShift2 && ss.DateRecevied < dateShift);
return query;
}
if (dateRange == (int)DateRange.AllTime)
{
query = query.AsQueryable();
return query;
}
if (dateRange == (int)DateRange.Last90Days)
{
var dateShift = today.AddDays(-90);
query = query.Where(ss => ss.DateRecevied >= dateShift);
return query;
}
if (dateRange == (int)DateRange.LastWeekFromMonSun)
{
var dateLastWeekMonday = DateTimeExtensions.GetDateForLastWeekMonday(today);
var dateLastWeekSun = DateTimeExtensions.GetDateForLastWeekSun(today).AddDays(1);
query = query
.Where(ss =>
ss.DateRecevied >= dateLastWeekMonday
&&
ss.DateRecevied < dateLastWeekSun);
return query;
}
if (dateRange == (int)DateRange.LastWorkingWeekFromMonFri)
{
var dateLastWeekMonday = DateTimeExtensions.GetDateForLastWeekMonday(today);
var dateLastWeekFri = DateTimeExtensions.GetDateForLastWeekFri(today).AddDays(1);
query = query
.Where(ss =>
ss.DateRecevied >= dateLastWeekMonday
&&
ss.DateRecevied < dateLastWeekFri);
return query;
}
return query;
1 Câu trả lời
我最终使用了 MomentJS 库 ( http://momentjs.com ) 并在我的 AngularJS 应用程序上创建了一个新模块。
我将它上传到 GitHub 以供 future 的访问者使用:https://github.com/renatocarrico/js-libraries/blob/master/human-date-range.js
代码(如果链接无法打开):
var options = [{ name: "Custom", id: 1 }, { name: "Today", id: 2 }, { name: "Yesterday", id: 3 }, { name: "This Week (Sun - Today)", id: 4 }, { name: "This Week (Mon - Today)", id: 5 }, { name: "Last 7 Days", id: 6 }, { name: "Last Week (Mon - Sunday)", id: 7 }, { name: "Last Business Week (Mon - Fri)", id: 8 }, { name: "Last 14 days", id: 9 }, { name: "This Month", id: 10 }, { name: "Last 30 Days", id: 11 }, { name: "Last Month", id: 12 }, { name: "Last 90 Days", id: 13 }];
var selectedOption = 2;
function setSelectedOption (optionId) {
selectedOption = optionId;
};
function getOptions() {
return options;
};
function getFromDate() {
//Today
if (selectedOption == 2) {
return new Date();
}
//Yesterday
if (selectedOption == 3) {
return moment().subtract(1, 'd').toDate();
}
//This Week (Sun - Today)
if (selectedOption == 4) {
return moment().day("Sunday").toDate();
}
//This Week (Mon - Today)
if (selectedOption == 5) {
return moment().day("Monday").toDate();
}
//Last 7 Days
if (selectedOption == 6) {
return moment().subtract(7, 'd').toDate();
}
//Last Week (Mon - Sunday)
if (selectedOption == 7) {
return moment().day('Monday').subtract(1, 'w').toDate();
}
//Last Business Week (Mon - Fri)
if (selectedOption == 8) {
return moment().day('Monday').subtract(1,'w').toDate();
}
//Last 14 days
if (selectedOption == 9) {
return moment().subtract(14, 'd').toDate();
}
//This Month
if (selectedOption == 10) {
return moment().startOf('month').toDate();
}
//Last 30 Days
if (selectedOption == 11) {
return moment().subtract(30, 'd').toDate();
}
//Last Month
if (selectedOption == 12) {
return moment().startOf('month').subtract(1,'M').toDate()
}
//Last 90 Days
if (selectedOption == 13) {
return moment().subtract(90, 'd').toDate();
}
}
function getToDate() {
//Today
if (selectedOption == 2) {
return new Date();
}
//Yesterday
if (selectedOption == 3) {
return moment().subtract(1, 'd').toDate();
}
//This Week (Sun - Today)
if (selectedOption == 4) {
return new Date();
}
//This Week (Mon - Today)
if (selectedOption == 5) {
return new Date();
}
//Last 7 Days
if (selectedOption == 6) {
return new Date();
}
//Last Week (Mon - Sunday)
if (selectedOption == 7) {
return moment().day(0).toDate();
}
//Last Business Week (Mon - Fri)
if (selectedOption == 8) {
return moment().day(-2).toDate();
}
//Last 14 days
if (selectedOption == 9) {
return new Date();
}
//This Month
if (selectedOption == 10) {
return moment().endOf('month').toDate();
}
//Last 30 Days
if (selectedOption == 11) {
return new Date();
}
//Last Month
if (selectedOption == 12) {
return moment().subtract(1, 'M').endOf('month').toDate();
}
//Last 90 Days
if (selectedOption == 13) {
return new Date();
}
}
关于javascript - 如何使用 HTML/JS 实现 'human' 日期范围选择下拉列表? (今天、昨天、上周……),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32498397/
本文实例讲述了php求今天、昨天、明天时间戳的简单实现方法。分享给大家供大家参考,具体如下: ?
我有以下数据: { "content": [ { "id": 15076772, "date": "2019-06-26T15
我今天从这里得到了解决问题的好方向,但我在尝试遵循这个方向时遇到了困难。 我想使用我的日期字段检索表中过去30 天 的所有行的计数。我使用 now() 填充这些字段,它们的格式为 Y-m-d h:i:
我正在从表中检索数据并显示条目的总和。我想要做的是显示今天、昨天和本月的条目总和。该表使用 unix 时间戳格式(例如 1351771856)。 目前我正在使用这一行来显示今天的结果: AND com
我有一个日期 TextView 。我的 textview 包含一个日期字符串,例如 2011.09.17。好吧,我仍然想拥有它,但我也想为今天或昨天等特定日期添加更多用户友好的信息。例如,如果今天是
Sau đây là các ví dụ: ? 1
用途说明 date命令可以用来显示和修改系统日期时间,注意不是time命令。 常用参数 格式:date 显示当前日期时间。 格式:date mmddHHMM &nbs
我想使用 PHP 和 MySQL 插入昨天的日期。所以我的想法是: INTO chartValues SET timestamp='1353369600', `datetime`=DATEADD(d,
前言 相信大家在java中用到的最多的时间类莫过于 java.util.Date了,由于Date类中将getYear() , getMonth()等获取年、月、日的方法都废弃了,所以本文的问题要借
我需要显示有关Kibana的报告,该报告将基于多个日期间隔汇总结果。时间与时间戳一起映射为浮点数据类型。 例: Jobs, Yesterday, Last Week, Last Quarters Jo
我试图将昨天设置为Jquery datapicker,如下所示: $(".datepicker").datepicker("setDate", (new Date().getDate() - 1) )
我正在解析时间和日期,日期可以显示如下 “今天上午 7:43”“昨天上午 7 点 33 分”“8 月 21 日上午 6:48” 我知道如何解析“8 月 21 日上午 6:48”,但是是否有任何内置内容
我只能想到用两个流来做到这一点。有更好的办法吗? LocalDate lastLoginOrMigrationDate = Stream.of(lastLogin, migrationdate)
我正在从具有 DateAdded(时间戳)列的 MySQL 数据库中访问数据库以获取 100 条记录。 我想找到一种在 Coldfusion 中如下所示显示记录的 SMART 方法,而无需多次访问数据
我正在开发一个 PHP/MySQL 统计日志程序,并试图为其找到最佳的 MySQL 数据库结构。 访问者可以在其中查看最新的统计数据(即最新的 20 个条目),还可以查看今天的总体数据、昨天的总体数据
使用 iOS SDK,我需要找到一种简单而安全的方法来查看 NSDate 是今天、昨天还是明天。我正在寻找的是伪代码中的类似内容: NSDate *myDate = someDate; if ([my
我正在尝试使用 moment.js 来了解日期是今天、昨天、1 周前还是更早(2 周前或更早)。 前两种情况我已经这样做了: var today = moment().startOf('day');
mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结: 话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天
我试图显示今天(9 滚动 24 小时)的计数与昨天(再次滚动)与每周平均值的计数 虽然我的代码可以工作,但我也遇到了错误 错误是(查询成功,但有警告:处理查询时出现一些错误。:“部分查询失败:未指定错
有人手头有一个简单的函数可以将日期转换为 .NET 中的简单日期相对字符串吗? 例如2009 年 10 月 14 日将读取“今天”,2009 年 10 月 13 日将读取“昨天”,2009 年 10
Tôi là một lập trình viên xuất sắc, rất giỏi!