2009-05-21 6 views

Répondre

2

Vous auriez besoin de connaître le fuseau horaire du client. Il n'y a pas assez d'informations dans la requête type pour faire cette détermination, le plus proche que vous pouvez obtenir est l'en-tête Accept_Language qui pourrait vous donner un indice mais n'est guère utile (surtout si le client est dans un pays qui a plusieurs fuseaux horaires) .

Par conséquent, vous devrez indiquer à l'utilisateur quel est le fuseau horaire, puis utiliser une connexion ou un cookie pour stocker cette information.

+0

merci.. oui, il est nécessaire de stocker le fuseau horaire au profil de l'utilisateur. – BlueSky

0

Vous pouvez faire la conversion sur le côté serveur sur vb.net, C# ou n'importe quel langage .net que vous utilisez. Vous allez devoir vous convertir à l'heure locale quelque part.

Vous posez une question très large sans détail, donc je ne peux pas recommander comment faire cela sur le serveur.

Modifier

Sur la base des commentaires que je vois le problème que vous ayez est que vous voulez savoir ce que le fuseau horaire des utilisateurs est sans javascript. J'ai toujours l'utilisateur me dire leur fuseau horaire quand ils s'inscrivent. Une approche qui ne sera pas parfaite serait d'utiliser un service de recherche geo-ip qui vous dira très probablement où votre utilisateur et donner votre meilleure granularité, puis en utilisant les paramètres de langue.

+2

Cela suppose le serveur sait quel est le fuseau le client est en – AnthonyWJones

+0

qui sera difficile à rassembler sans JS :) – annakata

0

Pense que c'est le plus proche que vous pouvez faire:

using System.Globalization; 

// get the first language from request (en, fr, ru) 
var primaryLanguage = Request.UserLanguages.First().Split(";").First(); 
// find a culture by this language 
var culture = new CultureInfo(primaryLanguage); 
// if the culture is neutral, try to find the specific one 
if (culture.IsNeutralCulture) 
    culture = CultureInfo.GetCultures(CultureTypes.SpecificCultures).FirstOrDefault(o => o.TwoLetterISOLanguageName == primaryLanguage); 
// get the string from a datetime 
var datetimeText = culture ? DateTime.Now.ToString(culture) : DateTime.Now.ToString(); 
Questions connexes