چه چور زمان به صورت زیر نمایش بدیم؟
سلام
میبایست از کلاس یا dll های مخصوص اینکار مانند PersianToolsPack استفاده کنید. و تاریخ رو تبدیل به string کنید و نمایش بدید
موفق باشید.
میشه نمونه معرفی کنی
یک کتابخانه در گیت هاب در این مورد MD.PersianDateTime هست.
به عنوان نمونه یک کلاس به نام PersianDate ایجاد کنید و محتوای زیر را در آن Paste کنید.
using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Extensions{ public static class PersianDate { /// <summary> /// یک استرینگ تاریخ شمسی را به معادل میلادی تبدیل میکند /// </summary> /// <param name="persianDate">تاریخ شمسی</param> /// <returns>تاریخ میلادی</returns> public static DateTime ToGeorgianDateTime(this string persianDate) { int year = Convert.ToInt32(persianDate.Substring(0, 4)); int month = Convert.ToInt32(persianDate.Substring(5, 2)); int day = Convert.ToInt32(persianDate.Substring(8, 2)); DateTime georgianDateTime = new DateTime(year, month, day,new System.Globalization.PersianCalendar()); return georgianDateTime; } /// <summary> /// یک تاریخ میلادی را به معادل فارسی آن تبدیل میکند /// </summary> /// <param name="georgianDate">تاریخ میلادی</param> /// <returns>تاریخ شمسی</returns> public static string ToPersianDateString(this DateTime georgianDate) { System.Globalization.PersianCalendar persianCalendar = new System.Globalization.PersianCalendar(); string year = persianCalendar.GetYear(georgianDate).ToString(); string month = persianCalendar.GetMonth(georgianDate).ToString().PadLeft(2,'0'); string day = persianCalendar.GetDayOfMonth(georgianDate).ToString().PadLeft(2, '0'); string persianDateString = string.Format("{0}/{1}/{2}", year, month, day); return persianDateString; } /// <summary> /// یک تعداد روز را از یک تاریخ شمسی کم میکند یا به آن آضافه میکند /// </summary> /// <param name="georgianDate">تاریخ شمسی اول</param> /// <param name="days">تعداد روزی که میخواهیم اضافه یا کم کنیم</param> /// <returns>تاریخ شمسی به اضافه تعداد روز</returns> public static string AddDaysToShamsiDate(this string persianDate,int days) { DateTime dt = persianDate.ToGeorgianDateTime(); dt = dt.AddDays(days); return dt.ToPersianDateString(); } }}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Extensions
{
public static class PersianDate
/// <summary>
/// یک استرینگ تاریخ شمسی را به معادل میلادی تبدیل میکند
/// </summary>
/// <param name="persianDate">تاریخ شمسی</param>
/// <returns>تاریخ میلادی</returns>
public static DateTime ToGeorgianDateTime(this string persianDate)
int year = Convert.ToInt32(persianDate.Substring(0, 4));
int month = Convert.ToInt32(persianDate.Substring(5, 2));
int day = Convert.ToInt32(persianDate.Substring(8, 2));
DateTime georgianDateTime = new DateTime(year, month, day,new System.Globalization.PersianCalendar());
return georgianDateTime;
}
/// یک تاریخ میلادی را به معادل فارسی آن تبدیل میکند
/// <param name="georgianDate">تاریخ میلادی</param>
/// <returns>تاریخ شمسی</returns>
public static string ToPersianDateString(this DateTime georgianDate)
System.Globalization.PersianCalendar persianCalendar = new System.Globalization.PersianCalendar();
string year = persianCalendar.GetYear(georgianDate).ToString();
string month = persianCalendar.GetMonth(georgianDate).ToString().PadLeft(2,'0');
string day = persianCalendar.GetDayOfMonth(georgianDate).ToString().PadLeft(2, '0');
string persianDateString = string.Format("{0}/{1}/{2}", year, month, day);
return persianDateString;
/// یک تعداد روز را از یک تاریخ شمسی کم میکند یا به آن آضافه میکند
/// <param name="georgianDate">تاریخ شمسی اول</param>
/// <param name="days">تعداد روزی که میخواهیم اضافه یا کم کنیم</param>
/// <returns>تاریخ شمسی به اضافه تعداد روز</returns>
public static string AddDaysToShamsiDate(this string persianDate,int days)
DateTime dt = persianDate.ToGeorgianDateTime();
dt = dt.AddDays(days);
return dt.ToPersianDateString();
نحوه استفاده نیز به صورت زیر است
string mystring = DateTime.Now.ToPersianDateString();string mystring2 = DateTime.Now.AddDaysToShamsiDate();//و در نهایت مقدار مای استرینگ رو یه جا نشون بدید.
string mystring = DateTime.Now.ToPersianDateString();
string mystring2 = DateTime.Now.AddDaysToShamsiDate();
//و در نهایت مقدار مای استرینگ رو یه جا نشون بدید.
کلاس AddDaysToShamsiDate() رو نمیشناسه
برای تبدیل میلادی به شمسی خط دوم را پاک کنید. خط دوم کاربرد دیگه داره که توی توضیحات کلاس نوشته
ایا با این نوع نمایش در سئو تاثیر دارد یا خیر؟
این نوع نمایش تاریخ فقط برای نمایش به کاربر هست و برای سئو باید متاتگ مخصوص با تاریخ میلادی تعریف کنید.
داخل Repeater اومدم به صورت زیر نوشتم خطا میده
<asp:Repeater ID="RlinkAllpost" runat="server"> <ItemTemplate> <li> <div class="title"> <a href='<%#Eval("ID_post","../../News/{0}/")+Eval("url_post")%>' title='<%# Eval("title_post") %>' style="font-size: 12px; color: <%# Eval("colorpost") %>"><%# Eval("title_post") %></a> </div> <div class="time" style="font:IranSansFaNum"><%#cmsarya.DAL.other.ConvertDateTime(Eval("title_post"))%></div> </li> </ItemTemplate> </asp:Repeater>
سلام
میبایست از کلاس یا dll های مخصوص اینکار مانند PersianToolsPack استفاده کنید. و تاریخ رو تبدیل به string کنید و نمایش بدید
موفق باشید.
میشه نمونه معرفی کنی
به عنوان نمونه یک کلاس به نام PersianDate ایجاد کنید و محتوای زیر را در آن Paste کنید.
نحوه استفاده نیز به صورت زیر است
کلاس AddDaysToShamsiDate() رو نمیشناسه
ایا با این نوع نمایش در سئو تاثیر دارد یا خیر؟