SimpleWeather jquery插件

时间:2012-08-25 11:26:09

标签: jquery asp.net

我正在使用SimpleWeather jquery插件,在asp.net页面上运行正常。 https://github.com/monkeecreate/jquery.simpleWeather

我只有两个问题:

  1. 我在上午和下午得到的时间,是否有人知道如何将其修复到24H。

  2. 如果我知道weather.code http://developer.yahoo.com/weather/#codes我可以用某种方式将我自己的名字用于热,冰雹等等吗?

    $。的getJSON( weatherUrl, function(data){ if(data!== null&& data.query.results!== null){     $ .each(data.query.results,function(i,result){         if(result.constructor.toString()。indexOf(“Array”)!== -1){             result = result [0];         }

        var currentDate = new Date();
        var sunRise = new Date(currentDate.toDateString() + ' ' + result.astronomy.sunrise);
        var sunSet = new Date(currentDate.toDateString() + ' ' + result.astronomy.sunset);
    
        if (currentDate > sunRise && currentDate < sunSet) {
            var timeOfDay = 'd';
        } else {
            var timeOfDay = 'n';
        }
    

2 个答案:

答案 0 :(得分:1)

你需要调整插件。要启用自定义条件文本,您可以添加新选项属性以将条件代码映射到自定义文本,并在插件中使用它,如下所示:

// this code is a part of weater object initialization
currently: options.conditions && options.conditions[result.item.condition.code] ? options.conditions[result.item.condition.code] : result.item.condition.text,
high: result.item.forecast[0].high,
low: result.item.forecast[0].low,
forecast: options.conditions && options.conditions[result.item.forecast[0].code] ? options.conditions[result.item.forecast[0].code] : result.item.forecast[0].text,

并将自定义属性传递给插件:

$.simpleWeather({
    location: 'Copenhagen, Denmark',
    unit: 'c',
    conditions: { 26: 'Overskyet', 27: 'Mest skyet', 28: 'Mest skyet', 36: 'Hagl' },

要更改日出和日落时间格式,您还可以调整插件。这次您需要以h:mm tt格式解析时间并以HH:mm格式显示。如果您对页面有ScriptManager控制权,则可以使用Microsoft Ajax Date对象扩展功能:

更改了插件的代码:

$.getJSON(
    weatherUrl,
    function (data) {
        if (data !== null && data.query.results !== null) {
            $.each(data.query.results, function (i, result) {
                if (result.constructor.toString().indexOf("Array") !== -1) {
                    result = result[0];
                }

                var currentDate = new Date();
                if (Date.parseInvariant) {
                    result.astronomy.sunrise = Date.parseInvariant(result.astronomy.sunrise, "h:mm tt").format("HH:mm");
                    result.astronomy.sunset = Date.parseInvariant(result.astronomy.sunset, "h:mm tt").format("HH:mm");
                }

答案 1 :(得分:0)

如果您需要使用SimpleWeather jQuery插件显示24H时间,那么Yuriy的解决方案无法正常工作......

但这是一个有效的解决方案。

在js脚本中找到此代码。

var currentDate = new Date();
var sunRise = new Date(currentDate.toDateString() + ' ' + result.astronomy.sunrise);
var sunSet = new Date(currentDate.toDateString() + ' ' + result.astronomy.sunset);

if (currentDate > sunRise && currentDate < sunSet) {
    var timeOfDay = 'd';
} else {
    var timeOfDay = 'n';
}

然后将代码更改为此(如果日落时间为20:05则会出现24H日落的问题,然后它显示时间为20:5我在d时显示xx:0x在MM时间中的前0 ,这段代码正在解决这个问题)

                        var currentDate = new Date();
                        var sunRise = new Date(currentDate.toDateString() + ' ' + result.astronomy.sunrise);
                        var sunSet = new Date(currentDate.toDateString() + ' ' + result.astronomy.sunset);

                        var sunRiseHour = "" + sunRise.getHours() + "";
                        var sunRiseMinute = "" + sunRise.getMinutes() + "";
                        var sunSetHour = "" + sunSet.getHours() + "";
                        var sunSetMinute = "" + sunSet.getMinutes() + "";

                        if (sunRiseHour.length == 1) {
                            sunRiseHour = "0" + sunRiseHour;
                        }
                        if (sunRiseMinute.length == 1) {
                            sunRiseMinute = "0" + sunRiseMinute;
                        }
                        if (sunSetHour.length == 1) {
                            sunSetHour = "0" + sunSetHour;
                        }
                        if (sunSetMinute.length == 1) {
                            sunSetMinute = "0" + sunSetMinute;
                        }
                        var sunRiseTime = sunRiseHour + ":" + sunRiseMinute;
                        var sunSetTime = sunSetHour + ":" + sunSetMinute;


                        if (currentDate > sunRise && currentDate < sunSet) {
                            var timeOfDay = 'd';
                        } else {
                            var timeOfDay = 'n';
                        }

如果显示24H而不是AM / PM ex,请记住使用SunSetTime和SunRiseTime。 SunSet和SunRise。

如果前几个小时也存在问题,那么它也解决了HH时间的问题。 快乐使用...