我正在使用SimpleWeather jquery插件,在asp.net页面上运行正常。 https://github.com/monkeecreate/jquery.simpleWeather
我只有两个问题:
我在上午和下午得到的时间,是否有人知道如何将其修复到24H。
如果我知道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';
}
答案 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时间的问题。 快乐使用...