相关疑难解决方法(0)

asp.net mvc时间以前的单词帮手

可能重复:
如何计算相对时间?

有没有类似于rails的'time_ago_in_words助手为asp.net MVC?

c# asp.net-mvc

16
推荐指数
2
解决办法
6921
查看次数

如何创建友好的日期格式(例如"提交2天前")

可能重复:
如何计算相对时间?

我想在我的社交网络应用上格式化日期,就像Digg.com和其他网站一样.在那里,你会看到非常友好的约会,例如:

  • 现在
  • 3分钟前
  • 一个小时之前
  • 2个星期前
  • 6个月前
  • 等等

在我开始创建这样的东西之前,有没有人知道任何现成的脚本,我只需插入一个日期戳,并根据它与当前时间的关系给出一个友好的日期文本?

PS:我需要在PHP中使用它,但伪代码或任何其他语言也可以.

php formatting date

15
推荐指数
1
解决办法
9767
查看次数

在ASP.NET MVC(3)中格式化模型属性的最佳位置在哪里?

我最近一直在寻找ASP.NET MVC框架中的最佳实践,特别是关注的关注.我的问题是,如果我在模型上有属性,那么在该属性上进行某些格式化的最佳位置在哪里?

我想过几个选项,但不确定哪个是最好的.该示例使用DateTime.对不起,这有点长.

选项1: 在视图中:@Model.TheDate.String("{0:'blah'dd/MM/yyyy}") 我知道这不对,因为格式字符串不应该在这里(如果我想在整个应用程序中更改格式怎么办)

选项2: 视图中使用的扩展方法:@Model.TheDate.DisplayItNicePlease() 这种方式很有意义,因为视图正在选择用于格式化的扩展方法,而viewmodel只是将date属性公开给视图.不确定视图或视图模型是否应该负责格式化.

选项3: 在Html Helper方法中,例如,我应该在ASP.NET MVC 3中放置声明性HTML帮助器,以便您可以使用:

@Html.DisplayDateNice(Model.TheDate)
Run Code Online (Sandbox Code Playgroud)

选项4: 视图模型上的额外属性,以格式化它并返回一个字符串,例如:

public string TheDateStr
{
    get
    {
        return TheDate.DisplayItNicePlease();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在视图中你就拥有了

@Model.TheDateStr
Run Code Online (Sandbox Code Playgroud)

与选项3非常相似,只是它保持视图真实,非常简单 - 视图只是输出模型中的内容而不关心数据的格式.

选项5: DisplayFormat属性,例如:在视图模型上:

[DisplayFormat(DataFormatString = "{0:'blah'dd/MM/yyyy}")]
public DateTime TheDate { get; set; }
Run Code Online (Sandbox Code Playgroud)

然后在视图上:

@Html.DisplayFor(m => m.TheDate)
Run Code Online (Sandbox Code Playgroud)

我喜欢这个,除了格式字符串不再使用,所以带上选项5 ......

选项6: 某种习惯,DisplayFormatAttribute例如NiceDateDisplayFormatAttribute.在我看来,这可能是最好的解决方案,如果您只想要一个简单的字符串格式化,那么效果很好.我认为如果你想要更复杂的东西会变得更复杂,例如显示相对时间(计算C#中的相对时间),在这种情况下,最好是在扩展方法/ html助手中.

可能还有其他方法我甚至都不知道......

asp.net-mvc asp.net-mvc-3

14
推荐指数
1
解决办法
2048
查看次数

来自NSDate的相对字符串

有没有人知道一个库或什么会将NSDate转换成字符串,如下面的例子?

1 hour ago
yesterday
last Thursday
2 days ago
last month
6 months ago
last year
Run Code Online (Sandbox Code Playgroud)

cocoa nsdate nsstring

13
推荐指数
3
解决办法
6393
查看次数

如何解析相对时间?

这个问题是问题的另一面,问" 我如何计算相对时间? ".

鉴于相对时间的一些人为输入,你如何解析它?默认情况下,您将偏移DateTime.Now(),但可以选择从另一个偏移DateTime.

(首选C#中的答案)

输入示例:

  • "在20分钟内"
  • "5小时前"
  • "3h 2m"
  • "下周"

编辑: 我们假设我们可以在输入上定义一些限制.这种代码在网络上是有用的.

c# language-agnostic time parsing

12
推荐指数
2
解决办法
1940
查看次数

Objective-C中的模糊数据算法

我想写一个模糊日期方法来计算iPhone的Objective-C中的日期.这里有一个流行的解释:

计算C#中的相对时间

但它包含缺少的参数.怎么能在Objective-C中使用它?谢谢.

const int SECOND = 1;
const int MINUTE = 60 * SECOND;
const int HOUR = 60 * MINUTE;
const int DAY = 24 * HOUR;
const int MONTH = 30 * DAY;

if (delta < 1 * MINUTE)
{
  return ts.Seconds == 1 ? "one second ago" : ts.Seconds + " seconds ago";
}
if (delta < 2 * MINUTE)
{
  return "a minute ago";
}
if (delta < 45 * MINUTE)
{
  return ts.Minutes + …
Run Code Online (Sandbox Code Playgroud)

iphone algorithm datetime objective-c

11
推荐指数
1
解决办法
4352
查看次数

TimeSpan到友好的字符串库(C#)

有没有人知道用于将TimeSpan对象转换为"友好"字符串的好库(或代码片段),例如:

  • 两年零三个月零四天
  • 一周两天

(这是一个文件到期系统,到期时间可能是几天到几十年)

只是为了澄清,说我有7天的TimeSpan,应打印"1周",14天"2周",366天"1年1天"等.

c# timespan

11
推荐指数
2
解决办法
8869
查看次数

人类可读的日期格式

您可能已经注意到某些Web应用程序(例如,GMail的某些部分)以比DD/MM/YYYY更人性化的格式显示日期.

例如,如果我打开23日的邮件(在撰写本文时恰好是3天前,我会得到以下内容:

12月23日(3天前)

我想在我自己的Web应用程序中实现类似的逻辑.

例如,在处理.NET TimeSpan对象时,我想将其转换为如下文本:

2个月

3天

是否有一个.NET库能够做到这一点?

如果不是,我可能会建立一些基本的和开源的东西.


我在这里做了一个基本的开始:

public static class TimeSpanHelpers
{
    public static string ToHumanReadableString(
        this TimeSpan timeSpan)
    {
        if (timeSpan.TotalDays > 30)
            return (timeSpan.TotalDays / 30) + " month(s)";

        if (timeSpan.TotalDays > 7)
            return (timeSpan.TotalDays / 7) + " week(s)";

        return (timeSpan.TotalDays) + " day(s)";
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# timespan user-experience date

10
推荐指数
2
解决办法
7577
查看次数

C#.NET中的模糊日期时间选择器控件?

我正在C#中为winforms应用程序实现模糊日期控件.模糊日期应该能够采用类似的模糊值

  • 去年六月
  • 2小时前
  • 2个月前
  • 上个星期
  • 昨天
  • 去年

等等

是否有"模糊"日期时间选择器的任何示例实现?

任何实现这种控制的想法都将受到赞赏

PS:我知道这里这里所说的模糊日期算法,我真的在寻找开发这种控制的任何想法和灵感

c# user-controls datetime fuzzy winforms

9
推荐指数
1
解决办法
6844
查看次数

日期为.Net中的简单文本(例如,今天,昨天,1周前)

有没有人有一个简单的功能可以将日期转换为简单的字符串(使用.Net)?

例如,2009年10月14日将会出现"今天",2009年10月13日会读到"昨天",而09年10月7日会读到"1周前"等等......

干杯,蒂姆

.net string date date-format

7
推荐指数
2
解决办法
3484
查看次数