等效于 PHP 的 date_create()->format() 的 C#? [关闭]

Posted

技术标签:

【中文标题】等效于 PHP 的 date_create()->format() 的 C#? [关闭]【英文标题】:Equivalent in C# of PHP's date_create()->format()? [closed] 【发布时间】:2014-11-02 01:51:04 【问题描述】:

php 中,您可以这样做:

date_diff(date_create('2013-01-27 22:14:44 UTC'), date_create(date('Y-m-d H:i:s e')))->format('%y year(s), %m month(s), %d day(s), %H hour(s), %i minute(s) and %s second(s)')

获取自某个日期以来的年数、天数、月数等,而不仅仅是其中一个。有没有办法在 c# 中做到这一点?对不起,简短的问题

【问题讨论】:

看一下 DateTime 类,任何搜索引擎中的“c# DateTime”应该都能找到正确的结果。 【参考方案1】:

在 C# 中,从另一个对象中减去一个 DateTime 对象会返回一个 TimeSpan 结构。您可以使用TimeSpan.ToString("formathere") 从中获取格式良好的字符串。

编辑:您会遇到的一个问题是 TimeSpan 没有年份或月份格式字符串。您可能想改用@JonSkeet 的Noda Time,如seen here。

【讨论】:

【参考方案2】:

在c#中做起来要简单得多,你可以在两个DateTimes上使用减法运算符,其结果是一个TimeSpan,其中包含了天数、小时数、分钟数和秒数区别。

        DateTime date1 = new DateTime(2013, 01, 27, 22, 14, 44, 00, DateTimeKind.Utc);
        TimeSpan diff = date1 - DateTime.Now;

然后您可以通过多种方式格式化输出,请参阅here 了解更多格式选项。

        string output = String.Format("0:dd day(s), 0:hh hour(s), 0:mm minute(s) and 0:ss second(s)", diff);

【讨论】:

以上是关于等效于 PHP 的 date_create()->format() 的 C#? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 等效于 PHP 的 list()

PHP 等效于 .NET/Java 的 toString()

PHP 5.2 等效于后期静态绑定(新静态)?

strcmp 等效于 PHP 中的整数 (strcmp)

使 JavaScript 正则表达式等效于 PHP 正则表达式

Java 等效于 PHP 的 mysql_real_escape_string()