【问题标题】:Subscription system with days count down?订阅系统倒计时?
【发布时间】:2018-03-31 19:08:45
【问题描述】:

我正在尝试创建一个订阅系统,其中每个用户的帐户都有特定的天数,并且每天天数都会减少 1 天,直到达到 0 天。如何每天减少所有超过 0 天的帐户的天数,并以 DD-MM-YYYY 格式输出天数达到 0 的日期。

谢谢。

编辑:

我找到了一种在 C# 中将日期转换为日期格式的方法,但是如何将日期格式转换为天数?

将日期转换为日期格式:

DateTime.Now.AddDays(subDayz).ToString("d-MMM-yyyy", new CultureInfo("en-GB"));

也许有一种方法可以在 PHP 中执行,或者在 C# 中执行但阻止用户更改日期以获得更多天数?

【问题讨论】:

  • 最好添加新列,如end_date
  • 使用所谓的WHERE 子句。不过这个问题还不清楚。
  • “当天数达到 0 时,格式为 DD-MM-YYYY” - 您不应该在此处存储纯文本日期。 MySQL 有专门的内置方法,当使用DATE 列类型时,将日期存储为YYYY-MM-DD
  • DD-MM-YYYY是什么格式?这真是不正常。
  • DD-MM-YYYY 是非美国格式,尤其是英国等。在加拿大,我们看到两者都在使用。当有人给出像 04-01-2018 这样的日期时,会变得非常混乱。

标签: c# php mysql days


【解决方案1】:

当您创建一个新帐户时,将数据库列设置为帐户到期的日期(也就是倒计时结束的日期),而不是倒计时,格式为 DD-MM-YYYY。例如,如果帐户是今天创建的(“31-03-2018”)并在 15 天后到期,则将此字段设置为“15-04-2018”。

现在无需每天更新此帐户(以及所有其他活动帐户)!如果将来当前日期大于此到期日期,则帐户已过期(也就是倒计时结束)。

顺便说一句,为了更容易比较日期,以 YYYY-MM-DD 格式存储并进行简单的字符串比较。如果需要并根据需要重新格式化以进行显示。

【讨论】:

  • 我会这样做,但我怎样才能在那个日期增加更多天数?因为如您所知,有些月份有 30 或 31 天,而 2 月有时有 28 天,我不能只将数字添加到日期字符串的最后一组数字中......
猜你喜欢
  • 1970-01-01
  • 2014-04-07
  • 1970-01-01
  • 1970-01-01
  • 2013-12-19
  • 1970-01-01
  • 2014-05-17
  • 2018-07-20
  • 2011-03-04
相关资源
最近更新 更多