Только это сработало для меня:
#container:hover .cube { background-color: yellow; }
Где .cube
- CssClass для #cube
.
Проверено в Firefox, Chrome и Edge.
Здесь функция, которая может быть полезна, так как возвращает дату -4 ч, учитывая, что это также может изменить дату, месяц и, в конечном итоге, год. Опция .searchBackward является важной частью:)
public static func correctSecondComponent(date: Date, calendar: Calendar = Calendar(identifier: Calendar.Identifier.gregorian))->Date {
let hour = calendar.component(.hour, from: date)
let e = (calendar as NSCalendar).date(byAdding: NSCalendar.Unit.hour, value: -4, to: date, options:.searchBackwards)!
return e
}
Начиная с iOS 8, есть более удобные dateByAddingUnit
:
Swift 2.x
//subtract 3 hours
let calendar = NSCalendar.autoupdatingCurrentCalendar()
newDate = calendar.dateByAddingUnit(.Hour, value: -3, toDate: originalDate, options: [])
В Swift 4:
var baseDate = ... // something
let dateMinus4Hours = Calendar.current.date(byAdding: .hour, value: -4, to: baseDate)
не соглашайтесь с 24*3600
и прочим, это напрашивается на неприятности.
//in Swift 3
//subtract 3 hours
let calendar = NSCalendar.autoupdatingCurrent
newDate = calendar.date(byAdding:.hour, value: -3, to: originalDate)
NSDate *newDate = [theDate dateByAddingTimeInterval:-3600*4];
NSDate *newDate = [[[NSDate alloc] initWithTimeInterval:-3600*4
sinceDate:theDate]] autorelease];
NSCalendar - это общий API-интерфейс для изменения дат на основе единиц человеческого времени. Для этого вы можете использовать NSCalendar -dateByAddingComponents:toDate:options:
с отрицательным числом часов.
Функция dateFromString возвращает NSDate, а не NSString. Вы должны изменить,
NSDate * theDate = [dateFormatter dateFromString: datetemp];